mercurial/hgweb.py
changeset 1369 b6d4ebebc35c
parent 1348 b8c82bf3da21
child 1400 cf9a1233738a
equal deleted inserted replaced
1368:d1d605d1e839 1369:b6d4ebebc35c
   384                      query=query,
   384                      query=query,
   385                      manifest=hex(mf),
   385                      manifest=hex(mf),
   386                      entries=changelist)
   386                      entries=changelist)
   387 
   387 
   388     def changeset(self, nodeid):
   388     def changeset(self, nodeid):
   389         n = bin(nodeid)
       
   390         cl = self.repo.changelog
   389         cl = self.repo.changelog
       
   390         n = self.repo.lookup(nodeid)
       
   391         nodeid = hex(n)
   391         changes = cl.read(n)
   392         changes = cl.read(n)
   392         p1 = cl.parents(n)[0]
   393         p1 = cl.parents(n)[0]
   393 
   394 
   394         files = []
   395         files = []
   395         mf = self.repo.manifest.read(changes[0])
   396         mf = self.repo.manifest.read(changes[0])
   420                      archives=archivelist())
   421                      archives=archivelist())
   421 
   422 
   422     def filelog(self, f, filenode):
   423     def filelog(self, f, filenode):
   423         cl = self.repo.changelog
   424         cl = self.repo.changelog
   424         fl = self.repo.file(f)
   425         fl = self.repo.file(f)
       
   426         filenode = hex(fl.lookup(filenode))
   425         count = fl.count()
   427         count = fl.count()
   426 
   428 
   427         def entries(**map):
   429         def entries(**map):
   428             l = []
   430             l = []
   429             parity = (count - 1) & 1
   431             parity = (count - 1) & 1
   452 
   454 
   453         yield self.t("filelog", file=f, filenode=filenode, entries=entries)
   455         yield self.t("filelog", file=f, filenode=filenode, entries=entries)
   454 
   456 
   455     def filerevision(self, f, node):
   457     def filerevision(self, f, node):
   456         fl = self.repo.file(f)
   458         fl = self.repo.file(f)
   457         n = bin(node)
   459         n = fl.lookup(node)
       
   460         node = hex(n)
   458         text = fl.read(n)
   461         text = fl.read(n)
   459         changerev = fl.linkrev(n)
   462         changerev = fl.linkrev(n)
   460         cl = self.repo.changelog
   463         cl = self.repo.changelog
   461         cn = cl.node(changerev)
   464         cn = cl.node(changerev)
   462         cs = cl.read(cn)
   465         cs = cl.read(cn)
   484 
   487 
   485     def fileannotate(self, f, node):
   488     def fileannotate(self, f, node):
   486         bcache = {}
   489         bcache = {}
   487         ncache = {}
   490         ncache = {}
   488         fl = self.repo.file(f)
   491         fl = self.repo.file(f)
   489         n = bin(node)
   492         n = fl.lookup(node)
       
   493         node = hex(n)
   490         changerev = fl.linkrev(n)
   494         changerev = fl.linkrev(n)
   491 
   495 
   492         cl = self.repo.changelog
   496         cl = self.repo.changelog
   493         cn = cl.node(changerev)
   497         cn = cl.node(changerev)
   494         cs = cl.read(cn)
   498         cs = cl.read(cn)
   533                      parent=self.parents("fileannotateparent",
   537                      parent=self.parents("fileannotateparent",
   534                                          fl.parents(n), fl.rev, file=f),
   538                                          fl.parents(n), fl.rev, file=f),
   535                      permissions=self.repo.manifest.readflags(mfn)[f])
   539                      permissions=self.repo.manifest.readflags(mfn)[f])
   536 
   540 
   537     def manifest(self, mnode, path):
   541     def manifest(self, mnode, path):
   538         mf = self.repo.manifest.read(bin(mnode))
   542         man = self.repo.manifest
   539         rev = self.repo.manifest.rev(bin(mnode))
   543         mn = man.lookup(mnode)
       
   544         mnode = hex(mn)
       
   545         mf = man.read(mn)
       
   546         rev = man.rev(mn)
   540         node = self.repo.changelog.node(rev)
   547         node = self.repo.changelog.node(rev)
   541         mff=self.repo.manifest.readflags(bin(mnode))
   548         mff = man.readflags(mn)
   542 
   549 
   543         files = {}
   550         files = {}
   544 
   551 
   545         p = path[1:]
   552         p = path[1:]
   546         l = len(p)
   553         l = len(p)
   615         yield self.t("tags",
   622         yield self.t("tags",
   616                      manifest=hex(mf),
   623                      manifest=hex(mf),
   617                      entries=entries)
   624                      entries=entries)
   618 
   625 
   619     def filediff(self, file, changeset):
   626     def filediff(self, file, changeset):
   620         n = bin(changeset)
       
   621         cl = self.repo.changelog
   627         cl = self.repo.changelog
       
   628         n = self.repo.lookup(changeset)
       
   629         changeset = hex(n)
   622         p1 = cl.parents(n)[0]
   630         p1 = cl.parents(n)[0]
   623         cs = cl.read(n)
   631         cs = cl.read(n)
   624         mf = self.repo.manifest.read(cs[0])
   632         mf = self.repo.manifest.read(cs[0])
   625 
   633 
   626         def diff(**map):
   634         def diff(**map):
   803                 req.write(z.compress(chunk))
   811                 req.write(z.compress(chunk))
   804 
   812 
   805             req.write(z.flush())
   813             req.write(z.flush())
   806 
   814 
   807         elif req.form['cmd'][0] == 'archive':
   815         elif req.form['cmd'][0] == 'archive':
   808             changeset = bin(req.form['node'][0])
   816             changeset = self.repo.lookup(req.form['node'][0])
   809             type = req.form['type'][0]
   817             type = req.form['type'][0]
   810             if (type in self.archives and
   818             if (type in self.archives and
   811                 self.repo.ui.configbool("web", "allow" + type, False)):
   819                 self.repo.ui.configbool("web", "allow" + type, False)):
   812                 self.archive(req, changeset, type)
   820                 self.archive(req, changeset, type)
   813                 return
   821                 return