mercurial/hgweb.py
changeset 1416 19d2776f1725
parent 1411 e2ba788545bf
child 1418 68f81ba07b2a
equal deleted inserted replaced
1415:c6e6ca96a033 1416:19d2776f1725
   196         for f in files[:self.maxfiles]:
   196         for f in files[:self.maxfiles]:
   197             yield self.t("filedifflink", node=hex(changeset), file=f)
   197             yield self.t("filedifflink", node=hex(changeset), file=f)
   198         if len(files) > self.maxfiles:
   198         if len(files) > self.maxfiles:
   199             yield self.t("fileellipses")
   199             yield self.t("fileellipses")
   200 
   200 
   201     def parents(self, t1, nodes=[], rev=None,**args):
   201     def parents(self, node, parents=[], rev=None, hide=False, **args):
   202         if not rev:
   202         if not rev:
   203             rev = lambda x: ""
   203             rev = lambda x: ""
   204         for node in nodes:
   204         parents = [p for p in parents if p != nullid]
   205             if node != nullid:
   205         if hide and len(parents) == 1 and rev(parents[0]) == rev(node) - 1:
   206                 yield self.t(t1, node=hex(node), rev=rev(node), **args)
   206             return
       
   207         for p in parents:
       
   208             yield dict(node=hex(p), rev=rev(p), **args)
   207 
   209 
   208     def showtag(self, t1, node=nullid, **args):
   210     def showtag(self, t1, node=nullid, **args):
   209         for t in self.repo.nodetags(node):
   211         for t in self.repo.nodetags(node):
   210              yield self.t(t1, tag=t, **args)
   212              yield self.t(t1, tag=t, **args)
   211 
   213 
   303                 changes = cl.read(n)
   305                 changes = cl.read(n)
   304                 hn = hex(n)
   306                 hn = hex(n)
   305 
   307 
   306                 l.insert(0, {"parity": parity,
   308                 l.insert(0, {"parity": parity,
   307                              "author": changes[1],
   309                              "author": changes[1],
   308                              "parent": self.parents("changelogparent",
   310                              "parent": self.parents(n, cl.parents(n), cl.rev,
   309                                                     cl.parents(n), cl.rev),
   311                                                     hide=True),
   310                              "changelogtag": self.showtag("changelogtag",n),
   312                              "changelogtag": self.showtag("changelogtag",n),
   311                              "manifest": hex(changes[0]),
   313                              "manifest": hex(changes[0]),
   312                              "desc": changes[4],
   314                              "desc": changes[4],
   313                              "date": changes[2],
   315                              "date": changes[2],
   314                              "files": self.listfilediffs(changes[3], n),
   316                              "files": self.listfilediffs(changes[3], n),
   364                 hn = hex(n)
   366                 hn = hex(n)
   365 
   367 
   366                 yield self.t('searchentry',
   368                 yield self.t('searchentry',
   367                              parity=count & 1,
   369                              parity=count & 1,
   368                              author=changes[1],
   370                              author=changes[1],
   369                              parent=self.parents("changelogparent",
   371                              parent=self.parents(n, cl.parents(n), cl.rev),
   370                                                  cl.parents(n), cl.rev),
       
   371                              changelogtag=self.showtag("changelogtag",n),
   372                              changelogtag=self.showtag("changelogtag",n),
   372                              manifest=hex(changes[0]),
   373                              manifest=hex(changes[0]),
   373                              desc=changes[4],
   374                              desc=changes[4],
   374                              date=changes[2],
   375                              date=changes[2],
   375                              files=self.listfilediffs(changes[3], n),
   376                              files=self.listfilediffs(changes[3], n),
   410 
   411 
   411         yield self.t('changeset',
   412         yield self.t('changeset',
   412                      diff=diff,
   413                      diff=diff,
   413                      rev=cl.rev(n),
   414                      rev=cl.rev(n),
   414                      node=nodeid,
   415                      node=nodeid,
   415                      parent=self.parents("changesetparent",
   416                      parent=self.parents(n, cl.parents(n), cl.rev),
   416                                          cl.parents(n), cl.rev),
       
   417                      changesettag=self.showtag("changesettag",n),
   417                      changesettag=self.showtag("changesettag",n),
   418                      manifest=hex(changes[0]),
   418                      manifest=hex(changes[0]),
   419                      author=changes[1],
   419                      author=changes[1],
   420                      desc=changes[4],
   420                      desc=changes[4],
   421                      date=changes[2],
   421                      date=changes[2],
   443                              "filerev": i,
   443                              "filerev": i,
   444                              "file": f,
   444                              "file": f,
   445                              "node": hex(cn),
   445                              "node": hex(cn),
   446                              "author": cs[1],
   446                              "author": cs[1],
   447                              "date": cs[2],
   447                              "date": cs[2],
   448                              "parent": self.parents("filelogparent",
   448                              "parent": self.parents(n, fl.parents(n),
   449                                                     fl.parents(n),
       
   450                                                     fl.rev, file=f),
   449                                                     fl.rev, file=f),
   451                              "desc": cs[4]})
   450                              "desc": cs[4]})
   452                 parity = 1 - parity
   451                 parity = 1 - parity
   453 
   452 
   454             for e in l:
   453             for e in l:
   488                      rev=changerev,
   487                      rev=changerev,
   489                      node=hex(cn),
   488                      node=hex(cn),
   490                      manifest=hex(mfn),
   489                      manifest=hex(mfn),
   491                      author=cs[1],
   490                      author=cs[1],
   492                      date=cs[2],
   491                      date=cs[2],
   493                      parent=self.parents("filerevparent",
   492                      parent=self.parents(n, fl.parents(n), fl.rev, file=f),
   494                                          fl.parents(n), fl.rev, file=f),
       
   495                      permissions=self.repo.manifest.readflags(mfn)[f])
   493                      permissions=self.repo.manifest.readflags(mfn)[f])
   496 
   494 
   497     def fileannotate(self, f, node):
   495     def fileannotate(self, f, node):
   498         bcache = {}
   496         bcache = {}
   499         ncache = {}
   497         ncache = {}
   541                      rev=changerev,
   539                      rev=changerev,
   542                      node=hex(cn),
   540                      node=hex(cn),
   543                      manifest=hex(mfn),
   541                      manifest=hex(mfn),
   544                      author=cs[1],
   542                      author=cs[1],
   545                      date=cs[2],
   543                      date=cs[2],
   546                      parent=self.parents("fileannotateparent",
   544                      parent=self.parents(n, fl.parents(n), fl.rev, file=f),
   547                                          fl.parents(n), fl.rev, file=f),
       
   548                      permissions=self.repo.manifest.readflags(mfn)[f])
   545                      permissions=self.repo.manifest.readflags(mfn)[f])
   549 
   546 
   550     def manifest(self, mnode, path):
   547     def manifest(self, mnode, path):
   551         man = self.repo.manifest
   548         man = self.repo.manifest
   552         mn = man.lookup(mnode)
   549         mn = man.lookup(mnode)
   646         yield self.t("filediff",
   643         yield self.t("filediff",
   647                      file=file,
   644                      file=file,
   648                      filenode=hex(mf.get(file, nullid)),
   645                      filenode=hex(mf.get(file, nullid)),
   649                      node=changeset,
   646                      node=changeset,
   650                      rev=self.repo.changelog.rev(n),
   647                      rev=self.repo.changelog.rev(n),
   651                      parent=self.parents("filediffparent",
   648                      parent=self.parents(n, cl.parents(n), cl.rev),
   652                                          cl.parents(n), cl.rev),
       
   653                      diff=diff)
   649                      diff=diff)
   654 
   650 
   655     def archive(self, req, cnode, type):
   651     def archive(self, req, cnode, type):
   656         cs = self.repo.changelog.read(cnode)
   652         cs = self.repo.changelog.read(cnode)
   657         mnode = cs[0]
   653         mnode = cs[0]