mercurial/hgweb.py
changeset 598 f8d44a2e6928
parent 582 df8a5a0098d4
child 599 765182a4c843
equal deleted inserted replaced
597:e530637ea060 598:f8d44a2e6928
   252             l = [] # build a list in forward order for efficiency
   252             l = [] # build a list in forward order for efficiency
   253             for i in range(start, end):
   253             for i in range(start, end):
   254                 n = cl.node(i)
   254                 n = cl.node(i)
   255                 changes = cl.read(n)
   255                 changes = cl.read(n)
   256                 hn = hex(n)
   256                 hn = hex(n)
   257                 p1, p2 = cl.parents(n)
       
   258                 t = float(changes[2].split(' ')[0])
   257                 t = float(changes[2].split(' ')[0])
   259 
   258 
   260                 l.insert(0, self.t(
   259                 l.insert(0, self.t(
   261                     'changelogentry',
   260                     'changelogentry',
   262                     parity = parity,
   261                     parity = parity,
   263                     author = changes[1],
   262                     author = changes[1],
   264                     parent = self.parents("changelogparent",
   263                     parent = self.parents("changelogparent",
   265                                           cl.parents(n), cl.rev),
   264                                           cl.parents(n), cl.rev),
   266                     changelogtag = self.showtag("changelogtag",n),
   265                     changelogtag = self.showtag("changelogtag",n),
   267                     p1 = hex(p1), p2 = hex(p2),
       
   268                     p1rev = cl.rev(p1), p2rev = cl.rev(p2),
       
   269                     manifest = hex(changes[0]),
   266                     manifest = hex(changes[0]),
   270                     desc = changes[4],
   267                     desc = changes[4],
   271                     date = t,
   268                     date = t,
   272                     files = self.listfilediffs(changes[3], n),
   269                     files = self.listfilediffs(changes[3], n),
   273                     rev = i,
   270                     rev = i,
   318                         break
   315                         break
   319                 if miss: continue
   316                 if miss: continue
   320 
   317 
   321                 count += 1
   318                 count += 1
   322                 hn = hex(n)
   319                 hn = hex(n)
   323                 p1, p2 = cl.parents(n)
       
   324                 t = float(changes[2].split(' ')[0])
   320                 t = float(changes[2].split(' ')[0])
   325 
   321 
   326                 yield self.t(
   322                 yield self.t(
   327                     'searchentry',
   323                     'searchentry',
   328                     parity = count & 1,
   324                     parity = count & 1,
   329                     author = changes[1],
   325                     author = changes[1],
   330                     parent = self.parents("changelogparent",
   326                     parent = self.parents("changelogparent",
   331                                           cl.parents(n), cl.rev),
   327                                           cl.parents(n), cl.rev),
   332                     changelogtag = self.showtag("changelogtag",n),
   328                     changelogtag = self.showtag("changelogtag",n),
   333                     p1 = hex(p1), p2 = hex(p2),
       
   334                     p1rev = cl.rev(p1), p2rev = cl.rev(p2),
       
   335                     manifest = hex(changes[0]),
   329                     manifest = hex(changes[0]),
   336                     desc = changes[4],
   330                     desc = changes[4],
   337                     date = t,
   331                     date = t,
   338                     files = self.listfilediffs(changes[3], n),
   332                     files = self.listfilediffs(changes[3], n),
   339                     rev = i,
   333                     rev = i,
   354 
   348 
   355     def changeset(self, nodeid):
   349     def changeset(self, nodeid):
   356         n = bin(nodeid)
   350         n = bin(nodeid)
   357         cl = self.repo.changelog
   351         cl = self.repo.changelog
   358         changes = cl.read(n)
   352         changes = cl.read(n)
   359         p1, p2 = cl.parents(n)
   353         p1 = cl.parents(n)[0]
   360         p1rev, p2rev = cl.rev(p1), cl.rev(p2)
       
   361         t = float(changes[2].split(' ')[0])
   354         t = float(changes[2].split(' ')[0])
   362 
   355 
   363         files = []
   356         files = []
   364         mf = self.repo.manifest.read(changes[0])
   357         mf = self.repo.manifest.read(changes[0])
   365         for f in changes[3]:
   358         for f in changes[3]:
   377                      rev = cl.rev(n),
   370                      rev = cl.rev(n),
   378                      node = nodeid,
   371                      node = nodeid,
   379                      parent = self.parents("changesetparent",
   372                      parent = self.parents("changesetparent",
   380                                            cl.parents(n), cl.rev),
   373                                            cl.parents(n), cl.rev),
   381                      changesettag = self.showtag("changesettag",n),
   374                      changesettag = self.showtag("changesettag",n),
   382                      p1 = hex(p1), p2 = hex(p2),
       
   383                      p1rev = cl.rev(p1), p2rev = cl.rev(p2),
       
   384                      manifest = hex(changes[0]),
   375                      manifest = hex(changes[0]),
   385                      author = changes[1],
   376                      author = changes[1],
   386                      desc = changes[4],
   377                      desc = changes[4],
   387                      date = t,
   378                      date = t,
   388                      files = files)
   379                      files = files)
   400 
   391 
   401                 n = fl.node(i)
   392                 n = fl.node(i)
   402                 lr = fl.linkrev(n)
   393                 lr = fl.linkrev(n)
   403                 cn = cl.node(lr)
   394                 cn = cl.node(lr)
   404                 cs = cl.read(cl.node(lr))
   395                 cs = cl.read(cl.node(lr))
   405                 p1, p2 = fl.parents(n)
       
   406                 t = float(cs[2].split(' ')[0])
   396                 t = float(cs[2].split(' ')[0])
   407 
   397 
   408                 l.insert(0, self.t("filelogentry",
   398                 l.insert(0, self.t("filelogentry",
   409                                    parity = parity,
   399                                    parity = parity,
   410                                    filenode = hex(n),
   400                                    filenode = hex(n),
   411                                    filerev = i,
   401                                    filerev = i,
   412                                    file = f,
   402                                    file = f,
   413                                    node = hex(cn),
   403                                    node = hex(cn),
   414                                    author = cs[1],
   404                                    author = cs[1],
   415                                    date = t,
   405                                    date = t,
   416                                    desc = cs[4],
   406                                    parent = self.parents("filelogparent",
   417                                    p1 = hex(p1), p2 = hex(p2),
   407                                        fl.parents(n), fl.rev, file=f),
   418                                    p1rev = fl.rev(p1), p2rev = fl.rev(p2)))
   408                                    desc = cs[4]))
   419                 parity = 1 - parity
   409                 parity = 1 - parity
   420 
   410 
   421             yield l
   411             yield l
   422 
   412 
   423         yield self.t("filelog",
   413         yield self.t("filelog",
   434         text = fl.read(n)
   424         text = fl.read(n)
   435         changerev = fl.linkrev(n)
   425         changerev = fl.linkrev(n)
   436         cl = self.repo.changelog
   426         cl = self.repo.changelog
   437         cn = cl.node(changerev)
   427         cn = cl.node(changerev)
   438         cs = cl.read(cn)
   428         cs = cl.read(cn)
   439         p1, p2 = fl.parents(n)
       
   440         t = float(cs[2].split(' ')[0])
   429         t = float(cs[2].split(' ')[0])
   441         mfn = cs[0]
   430         mfn = cs[0]
   442 
   431 
   443         def lines():
   432         def lines():
   444             for l, t in enumerate(text.splitlines(1)):
   433             for l, t in enumerate(text.splitlines(1)):
   458                      manifest = hex(mfn),
   447                      manifest = hex(mfn),
   459                      author = cs[1],
   448                      author = cs[1],
   460                      date = t,
   449                      date = t,
   461                      parent = self.parents("filerevparent",
   450                      parent = self.parents("filerevparent",
   462                                            fl.parents(n), fl.rev, file=f),
   451                                            fl.parents(n), fl.rev, file=f),
   463                      p1 = hex(p1), p2 = hex(p2),
   452                      permissions = self.repo.manifest.readflags(mfn)[f])
   464                      permissions = self.repo.manifest.readflags(mfn)[f],
       
   465                      p1rev = fl.rev(p1), p2rev = fl.rev(p2))
       
   466 
   453 
   467     def fileannotate(self, f, node):
   454     def fileannotate(self, f, node):
   468         bcache = {}
   455         bcache = {}
   469         ncache = {}
   456         ncache = {}
   470         fl = self.repo.file(f)
   457         fl = self.repo.file(f)
   472         changerev = fl.linkrev(n)
   459         changerev = fl.linkrev(n)
   473 
   460 
   474         cl = self.repo.changelog
   461         cl = self.repo.changelog
   475         cn = cl.node(changerev)
   462         cn = cl.node(changerev)
   476         cs = cl.read(cn)
   463         cs = cl.read(cn)
   477         p1, p2 = fl.parents(n)
       
   478         t = float(cs[2].split(' ')[0])
   464         t = float(cs[2].split(' ')[0])
   479         mfn = cs[0]
   465         mfn = cs[0]
   480 
   466 
   481         def annotate():
   467         def annotate():
   482             parity = 1
   468             parity = 1
   525                      manifest = hex(mfn),
   511                      manifest = hex(mfn),
   526                      author = cs[1],
   512                      author = cs[1],
   527                      date = t,
   513                      date = t,
   528                      parent = self.parents("fileannotateparent",
   514                      parent = self.parents("fileannotateparent",
   529                                            fl.parents(n), fl.rev, file=f),
   515                                            fl.parents(n), fl.rev, file=f),
   530                      p1 = hex(p1), p2 = hex(p2),
   516                      permissions = self.repo.manifest.readflags(mfn)[f])
   531                      permissions = self.repo.manifest.readflags(mfn)[f],
       
   532                      p1rev = fl.rev(p1), p2rev = fl.rev(p2))
       
   533 
   517 
   534     def manifest(self, mnode, path):
   518     def manifest(self, mnode, path):
   535         mf = self.repo.manifest.read(bin(mnode))
   519         mf = self.repo.manifest.read(bin(mnode))
   536         rev = self.repo.manifest.rev(bin(mnode))
   520         rev = self.repo.manifest.rev(bin(mnode))
   537         node = self.repo.changelog.node(rev)
   521         node = self.repo.changelog.node(rev)
   626                      filenode = hex(mf.get(file, nullid)),
   610                      filenode = hex(mf.get(file, nullid)),
   627                      node = changeset,
   611                      node = changeset,
   628                      rev = self.repo.changelog.rev(n),
   612                      rev = self.repo.changelog.rev(n),
   629                      parent = self.parents("filediffparent",
   613                      parent = self.parents("filediffparent",
   630                               cl.parents(n), cl.rev),
   614                               cl.parents(n), cl.rev),
   631                      p1rev = self.repo.changelog.rev(p1),
       
   632                      diff = diff)
   615                      diff = diff)
   633 
   616 
   634     # add tags to things
   617     # add tags to things
   635     # tags -> list of changesets corresponding to tags
   618     # tags -> list of changesets corresponding to tags
   636     # find tag, changeset, file
   619     # find tag, changeset, file