Mercurial > public > mercurial-scm > hg
comparison mercurial/hgweb.py @ 1572:385b8872b8e3
[hgweb] Initial import of the "gitweb" style
author | Josef "Jeff" Sipek <jeffpc@optonline.net> |
---|---|
date | Mon, 05 Dec 2005 04:30:47 -0500 |
parents | 59b3639df0a9 |
children | 32b091ce4026 |
comparison
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])) |