comparison mercurial/hgweb.py @ 1586:5c5aaaa9ab6f

Merge with upstream.
author Thomas Arendsen Hein <thomas@intevation.de>
date Thu, 15 Dec 2005 15:39:20 +0100
parents 85803ec2daab
children ba625c8083d8
comparison
equal deleted inserted replaced
1585:d7c4b9bfcc94 1586:5c5aaaa9ab6f
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 "tagmanifest": hex(cl.read(n)[0]),
636 "date": cl.read(n)[2],
635 "node": hex(n)} 637 "node": hex(n)}
636 parity = 1 - parity 638 parity = 1 - parity
637 639
638 yield self.t("tags", 640 yield self.t("tags",
639 manifest=hex(mf), 641 manifest=hex(mf),
640 entries=entries) 642 entries=entries)
643
644 def summary(self):
645 cl = self.repo.changelog
646 mf = cl.read(cl.tip())[0]
647
648 i = self.repo.tagslist()
649 i.reverse()
650
651 def tagentries(**map):
652 parity = 0
653 count = 0
654 for k,n in i:
655 if k == "tip": # skip tip
656 continue;
657
658 count += 1
659 if count > 10: # limit to 10 tags
660 break;
661
662 c = cl.read(n)
663 m = c[0]
664 t = c[2]
665
666 yield self.t("tagentry",
667 parity = parity,
668 tag = k,
669 node = hex(n),
670 date = t,
671 tagmanifest = hex(m))
672 parity = 1 - parity
673
674 def changelist(**map):
675 parity = 0
676 cl = self.repo.changelog
677 l = [] # build a list in forward order for efficiency
678 for i in range(start, end):
679 n = cl.node(i)
680 changes = cl.read(n)
681 hn = hex(n)
682 t = changes[2]
683
684 l.insert(0, self.t(
685 'shortlogentry',
686 parity = parity,
687 author = changes[1],
688 manifest = hex(changes[0]),
689 desc = changes[4],
690 date = t,
691 rev = i,
692 node = hn))
693 parity = 1 - parity
694
695 yield l
696
697 cl = self.repo.changelog
698 mf = cl.read(cl.tip())[0]
699 count = cl.count()
700 start = max(0, count - self.maxchanges)
701 end = min(count, start + self.maxchanges)
702 pos = end - 1
703
704 yield self.t("summary",
705 desc = self.repo.ui.config("web", "description", "unknown"),
706 owner = (self.repo.ui.config("ui", "username") or # preferred
707 self.repo.ui.config("web", "contact") or # deprecated
708 self.repo.ui.config("web", "author", "unknown")), # also
709 lastchange = (0, 0), # FIXME
710 manifest = hex(mf),
711 tags = tagentries,
712 shortlog = changelist)
641 713
642 def filediff(self, file, changeset): 714 def filediff(self, file, changeset):
643 cl = self.repo.changelog 715 cl = self.repo.changelog
644 n = self.repo.lookup(changeset) 716 n = self.repo.lookup(changeset)
645 changeset = hex(n) 717 changeset = hex(n)
796 req.write(self.manifest(req.form['manifest'][0], req.form['path'][0])) 868 req.write(self.manifest(req.form['manifest'][0], req.form['path'][0]))
797 869
798 elif req.form['cmd'][0] == 'tags': 870 elif req.form['cmd'][0] == 'tags':
799 req.write(self.tags()) 871 req.write(self.tags())
800 872
873 elif req.form['cmd'][0] == 'summary':
874 req.write(self.summary())
875
801 elif req.form['cmd'][0] == 'filediff': 876 elif req.form['cmd'][0] == 'filediff':
802 req.write(self.filediff(req.form['file'][0], req.form['node'][0])) 877 req.write(self.filediff(req.form['file'][0], req.form['node'][0]))
803 878
804 elif req.form['cmd'][0] == 'file': 879 elif req.form['cmd'][0] == 'file':
805 req.write(self.filerevision(req.form['file'][0], req.form['filenode'][0])) 880 req.write(self.filerevision(req.form['file'][0], req.form['filenode'][0]))