mercurial/hgweb.py
changeset 1498 78590fb4a82b
parent 1473 7d66ce9895fa
child 1511 a91bfbbe88d3
equal deleted inserted replaced
1497:f0b13c019b04 1498:78590fb4a82b
   194             self.repo = hg.repository(self.repo.ui, self.repo.root)
   194             self.repo = hg.repository(self.repo.ui, self.repo.root)
   195             self.maxchanges = int(self.repo.ui.config("web", "maxchanges", 10))
   195             self.maxchanges = int(self.repo.ui.config("web", "maxchanges", 10))
   196             self.maxfiles = int(self.repo.ui.config("web", "maxfiles", 10))
   196             self.maxfiles = int(self.repo.ui.config("web", "maxfiles", 10))
   197             self.allowpull = self.repo.ui.configbool("web", "allowpull", True)
   197             self.allowpull = self.repo.ui.configbool("web", "allowpull", True)
   198 
   198 
       
   199     def archivelist(self, nodeid):
       
   200         for i in self.archives:
       
   201             if self.repo.ui.configbool("web", "allow" + i, False):
       
   202                 yield {"type" : i, "node" : nodeid}
       
   203 
   199     def listfiles(self, files, mf):
   204     def listfiles(self, files, mf):
   200         for f in files[:self.maxfiles]:
   205         for f in files[:self.maxfiles]:
   201             yield self.t("filenodelink", node=hex(mf[f]), file=f)
   206             yield self.t("filenodelink", node=hex(mf[f]), file=f)
   202         if len(files) > self.maxfiles:
   207         if len(files) > self.maxfiles:
   203             yield self.t("fileellipses")
   208             yield self.t("fileellipses")
   412                                 filenode=hex(mf.get(f, nullid)), file=f))
   417                                 filenode=hex(mf.get(f, nullid)), file=f))
   413 
   418 
   414         def diff(**map):
   419         def diff(**map):
   415             yield self.diff(p1, n, None)
   420             yield self.diff(p1, n, None)
   416 
   421 
   417         def archivelist():
       
   418             for i in self.archives:
       
   419                 if self.repo.ui.configbool("web", "allow" + i, False):
       
   420                     yield {"type" : i, "node" : nodeid}
       
   421 
       
   422         yield self.t('changeset',
   422         yield self.t('changeset',
   423                      diff=diff,
   423                      diff=diff,
   424                      rev=cl.rev(n),
   424                      rev=cl.rev(n),
   425                      node=nodeid,
   425                      node=nodeid,
   426                      parent=self.parents(n, cl.parents(n), cl.rev),
   426                      parent=self.parents(n, cl.parents(n), cl.rev),
   428                      manifest=hex(changes[0]),
   428                      manifest=hex(changes[0]),
   429                      author=changes[1],
   429                      author=changes[1],
   430                      desc=changes[4],
   430                      desc=changes[4],
   431                      date=changes[2],
   431                      date=changes[2],
   432                      files=files,
   432                      files=files,
   433                      archives=archivelist())
   433                      archives=self.archivelist(nodeid))
   434 
   434 
   435     def filelog(self, f, filenode):
   435     def filelog(self, f, filenode):
   436         cl = self.repo.changelog
   436         cl = self.repo.changelog
   437         fl = self.repo.file(f)
   437         fl = self.repo.file(f)
   438         filenode = hex(fl.lookup(filenode))
   438         filenode = hex(fl.lookup(filenode))
   616                      rev=rev,
   616                      rev=rev,
   617                      node=hex(node),
   617                      node=hex(node),
   618                      path=path,
   618                      path=path,
   619                      up=up(path),
   619                      up=up(path),
   620                      fentries=filelist,
   620                      fentries=filelist,
   621                      dentries=dirlist)
   621                      dentries=dirlist,
       
   622                      archives=self.archivelist(hex(node)))
   622 
   623 
   623     def tags(self):
   624     def tags(self):
   624         cl = self.repo.changelog
   625         cl = self.repo.changelog
   625         mf = cl.read(cl.tip())[0]
   626         mf = cl.read(cl.tip())[0]
   626 
   627