mercurial/hgweb.py
changeset 1572 385b8872b8e3
parent 1559 59b3639df0a9
child 1574 32b091ce4026
equal deleted inserted replaced
1568:1d7d0c07e8f3 1572:385b8872b8e3
   630         def entries(**map):
   630         def entries(**map):
   631             parity = 0
   631             parity = 0
   632             for k,n in i:
   632             for k,n in i:
   633                 yield {"parity": parity,
   633                 yield {"parity": parity,
   634                        "tag": k,
   634                        "tag": k,
       
   635 		       "date": cl.read(n)[2],
   635                        "node": hex(n)}
   636                        "node": hex(n)}
   636                 parity = 1 - parity
   637                 parity = 1 - parity
   637 
   638 
   638         yield self.t("tags",
   639         yield self.t("tags",
   639                      manifest=hex(mf),
   640                      manifest=hex(mf),
   640                      entries=entries)
   641                      entries=entries)
   641 
   642 
       
   643     def summary(self):
       
   644         cl = self.repo.changelog
       
   645         mf = cl.read(cl.tip())[0]
       
   646 
       
   647         i = self.repo.tagslist()
       
   648         i.reverse()
       
   649 
       
   650         def tagentries(**map):
       
   651             parity = 0
       
   652 	    count = 0
       
   653             for k,n in i:
       
   654                 if k == "tip":		# skip tip
       
   655                     continue;
       
   656 
       
   657                 count += 1
       
   658                 if count > 10:		# limit to 10 tags
       
   659                     break;
       
   660 
       
   661                 c = cl.read(n)
       
   662                 m = c[0]
       
   663                 t = c[2]
       
   664                 
       
   665                 yield self.t("tagentry",
       
   666                              parity = parity,
       
   667                              tag = k,
       
   668                              node = hex(n),
       
   669                              date = t,
       
   670                              manifest = hex(m))
       
   671                 parity = 1 - parity
       
   672         
       
   673         def changelist(**map):
       
   674             parity = 0
       
   675             cl = self.repo.changelog
       
   676             l = [] # build a list in forward order for efficiency
       
   677             for i in range(start, end):
       
   678                 n = cl.node(i)
       
   679                 changes = cl.read(n)
       
   680                 hn = hex(n)
       
   681                 t = changes[2]
       
   682 
       
   683                 l.insert(0, self.t(
       
   684                     'shortlogentry',
       
   685                     parity = parity,
       
   686                     author = changes[1],
       
   687                     manifest = hex(changes[0]),
       
   688                     desc = changes[4],
       
   689                     date = t,
       
   690                     rev = i,
       
   691                     node = hn))
       
   692                 parity = 1 - parity
       
   693 
       
   694             yield l
       
   695 
       
   696         cl = self.repo.changelog
       
   697         mf = cl.read(cl.tip())[0]
       
   698         count = cl.count()
       
   699         start = max(0, count - self.maxchanges)
       
   700         end = min(count, start + self.maxchanges)
       
   701         pos = end - 1
       
   702 
       
   703         yield self.t("summary",
       
   704 		 desc = self.repo.ui.config("web", "description", "unknown"),
       
   705 		 owner = (self.repo.ui.config("ui", "username") or # preferred
       
   706                           self.repo.ui.config("web", "contact") or # deprecated
       
   707                           self.repo.ui.config("web", "author", "unknown")), # also
       
   708 		 lastchange = (0, 0), # FIXME
       
   709                  manifest = hex(mf),
       
   710                  tags = tagentries,
       
   711                  shortlog = changelist)
       
   712  
   642     def filediff(self, file, changeset):
   713     def filediff(self, file, changeset):
   643         cl = self.repo.changelog
   714         cl = self.repo.changelog
   644         n = self.repo.lookup(changeset)
   715         n = self.repo.lookup(changeset)
   645         changeset = hex(n)
   716         changeset = hex(n)
   646         p1 = cl.parents(n)[0]
   717         p1 = cl.parents(n)[0]
   796             req.write(self.manifest(req.form['manifest'][0], req.form['path'][0]))
   867             req.write(self.manifest(req.form['manifest'][0], req.form['path'][0]))
   797 
   868 
   798         elif req.form['cmd'][0] == 'tags':
   869         elif req.form['cmd'][0] == 'tags':
   799             req.write(self.tags())
   870             req.write(self.tags())
   800 
   871 
       
   872         elif req.form['cmd'][0] == 'summary':
       
   873             req.write(self.summary())
       
   874 	    
   801         elif req.form['cmd'][0] == 'filediff':
   875         elif req.form['cmd'][0] == 'filediff':
   802             req.write(self.filediff(req.form['file'][0], req.form['node'][0]))
   876             req.write(self.filediff(req.form['file'][0], req.form['node'][0]))
   803 
   877 
   804         elif req.form['cmd'][0] == 'file':
   878         elif req.form['cmd'][0] == 'file':
   805             req.write(self.filerevision(req.form['file'][0], req.form['filenode'][0]))
   879             req.write(self.filerevision(req.form['file'][0], req.form['filenode'][0]))