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])) |