Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/hgweb/hgweb_mod.py @ 3220:325278542ea8
hgweb: use contexts in more handlers
author | Brendan Cully <brendan@kublai.com> |
---|---|
date | Sat, 30 Sep 2006 21:32:29 -0700 |
parents | e7b7906cc47e |
children | 5c6028778c5a |
comparison
equal
deleted
inserted
replaced
3219:9a478efc16cc | 3220:325278542ea8 |
---|---|
147 to = r.file(f).read(mmap1[f]) | 147 to = r.file(f).read(mmap1[f]) |
148 tn = None | 148 tn = None |
149 yield diffblock(mdiff.unidiff(to, date1, tn, date2, f, | 149 yield diffblock(mdiff.unidiff(to, date1, tn, date2, f, |
150 opts=diffopts), f, tn) | 150 opts=diffopts), f, tn) |
151 | 151 |
152 def changelog(self, pos, shortlog=False): | 152 def changelog(self, ctx, shortlog=False): |
153 pos = ctx.rev() | |
153 def changenav(**map): | 154 def changenav(**map): |
154 def seq(factor, maxchanges=None): | 155 def seq(factor, maxchanges=None): |
155 if maxchanges: | 156 if maxchanges: |
156 yield maxchanges | 157 yield maxchanges |
157 if maxchanges >= 20 and maxchanges <= 40: | 158 if maxchanges >= 20 and maxchanges <= 40: |
272 yield self.t('search', | 273 yield self.t('search', |
273 query=query, | 274 query=query, |
274 node=hex(cl.tip()), | 275 node=hex(cl.tip()), |
275 entries=changelist) | 276 entries=changelist) |
276 | 277 |
277 def changeset(self, nodeid): | 278 def changeset(self, ctx): |
278 ctx = self.repo.changectx(nodeid) | |
279 n = ctx.node() | 279 n = ctx.node() |
280 parents = ctx.parents() | 280 parents = ctx.parents() |
281 p1 = parents[0].node() | 281 p1 = parents[0].node() |
282 | 282 |
283 files = [] | 283 files = [] |
300 changesettag=self.showtag("changesettag",n), | 300 changesettag=self.showtag("changesettag",n), |
301 author=ctx.user(), | 301 author=ctx.user(), |
302 desc=ctx.description(), | 302 desc=ctx.description(), |
303 date=ctx.date(), | 303 date=ctx.date(), |
304 files=files, | 304 files=files, |
305 archives=self.archivelist(nodeid)) | 305 archives=self.archivelist(hex(n))) |
306 | 306 |
307 def filelog(self, fctx): | 307 def filelog(self, fctx): |
308 f = fctx.path() | 308 f = fctx.path() |
309 cl = self.repo.changelog | 309 cl = self.repo.changelog |
310 fl = fctx.filelog() | 310 fl = fctx.filelog() |
550 tags = tagentries, | 550 tags = tagentries, |
551 shortlog = changelist, | 551 shortlog = changelist, |
552 node = hex(self.repo.changelog.tip()), | 552 node = hex(self.repo.changelog.tip()), |
553 archives=self.archivelist("tip")) | 553 archives=self.archivelist("tip")) |
554 | 554 |
555 def filediff(self, file, changeset): | 555 def filediff(self, fctx): |
556 ctx = self.repo.changectx(changeset) | 556 n = fctx.node() |
557 n = ctx.node() | 557 path = fctx.path() |
558 parents = ctx.parents() | 558 parents = fctx.changectx().parents() |
559 p1 = parents[0].node() | 559 p1 = parents[0].node() |
560 | 560 |
561 def diff(**map): | 561 def diff(**map): |
562 yield self.diff(p1, n, [file]) | 562 yield self.diff(p1, n, [path]) |
563 | 563 |
564 yield self.t("filediff", | 564 yield self.t("filediff", |
565 file=file, | 565 file=path, |
566 node=hex(n), | 566 node=hex(n), |
567 rev=ctx.rev(), | 567 rev=fctx.rev(), |
568 parent=self.siblings(parents), | 568 parent=self.siblings(parents), |
569 child=self.siblings(ctx.children()), | 569 child=self.siblings(fctx.children()), |
570 diff=diff) | 570 diff=diff) |
571 | 571 |
572 archive_specs = { | 572 archive_specs = { |
573 'bz2': ('application/x-tar', 'tbz2', '.tar.bz2', None), | 573 'bz2': ('application/x-tar', 'tbz2', '.tar.bz2', None), |
574 'gz': ('application/x-tar', 'tgz', '.tar.gz', None), | 574 'gz': ('application/x-tar', 'tgz', '.tar.gz', None), |
647 value = form[k] | 647 value = form[k] |
648 form[name] = value | 648 form[name] = value |
649 del form[k] | 649 del form[k] |
650 | 650 |
651 if form.has_key('manifest'): | 651 if form.has_key('manifest'): |
652 changeid = req.form['manifest'][0] | 652 changeid = form['manifest'][0] |
653 try: | 653 try: |
654 req.changectx = self.repo.changectx(changeid) | 654 req.changectx = self.repo.changectx(changeid) |
655 except hg.RepoError: | 655 except hg.RepoError: |
656 man = self.repo.manifest | 656 man = self.repo.manifest |
657 mn = man.lookup(changeid) | 657 mn = man.lookup(changeid) |
658 req.changectx = self.repo.changectx(man.linkrev(mn)) | 658 req.changectx = self.repo.changectx(man.linkrev(mn)) |
659 | 659 |
660 if form.has_key('filenode'): | 660 if form.has_key('filenode'): |
661 changeid = req.form['filenode'][0] | 661 changeid = form['filenode'][0] |
662 path = self.cleanpath(req.form['file'][0]) | 662 path = self.cleanpath(form['file'][0]) |
663 try: | 663 try: |
664 req.changectx = self.repo.changectx(changeid) | 664 req.changectx = self.repo.changectx(changeid) |
665 req.filectx = req.changectx.filectx(path) | 665 req.filectx = req.changectx.filectx(path) |
666 except hg.RepoError: | 666 except hg.RepoError: |
667 req.filectx = self.repo.filectx(path, fileid=changeid) | 667 req.filectx = self.repo.filectx(path, fileid=changeid) |
716 return (1 + parity / self.stripecount) & 1 | 716 return (1 + parity / self.stripecount) & 1 |
717 else: | 717 else: |
718 return 0 | 718 return 0 |
719 | 719 |
720 def do_changelog(self, req): | 720 def do_changelog(self, req): |
721 hi = self.repo.changelog.count() - 1 | |
722 if req.form.has_key('rev'): | 721 if req.form.has_key('rev'): |
723 hi = req.form['rev'][0] | 722 hi = req.form['rev'][0] |
724 try: | 723 else: |
725 hi = self.repo.changelog.rev(self.repo.lookup(hi)) | 724 hi = self.repo.changelog.count() - 1 |
726 except hg.RepoError: | 725 try: |
727 req.write(self.search(hi)) # XXX redirect to 404 page? | 726 ctx = self.repo.changectx(hi) |
728 return | 727 except hg.RepoError: |
729 | 728 req.write(self.search(hi)) # XXX redirect to 404 page? |
730 req.write(self.changelog(hi)) | 729 return |
730 | |
731 req.write(self.changelog(ctx)) | |
731 | 732 |
732 def do_shortlog(self, req): | 733 def do_shortlog(self, req): |
733 hi = self.repo.changelog.count() - 1 | |
734 if req.form.has_key('rev'): | 734 if req.form.has_key('rev'): |
735 hi = req.form['rev'][0] | 735 hi = req.form['rev'][0] |
736 try: | 736 else: |
737 hi = self.repo.changelog.rev(self.repo.lookup(hi)) | 737 hi = self.repo.changelog.count() - 1 |
738 except hg.RepoError: | 738 try: |
739 req.write(self.search(hi)) # XXX redirect to 404 page? | 739 hi = self.repo.changectx(hi) |
740 return | 740 except hg.RepoError: |
741 | 741 req.write(self.search(hi)) # XXX redirect to 404 page? |
742 req.write(self.changelog(hi, shortlog = True)) | 742 return |
743 | |
744 req.write(self.changelog(ctx, shortlog = True)) | |
743 | 745 |
744 def do_changeset(self, req): | 746 def do_changeset(self, req): |
745 req.write(self.changeset(req.form['node'][0])) | 747 ctx = self.repo.changectx(req.form['node'][0]) |
748 req.write(self.changeset(ctx)) | |
746 | 749 |
747 def do_manifest(self, req): | 750 def do_manifest(self, req): |
748 req.write(self.manifest(req.changectx, | 751 req.write(self.manifest(req.changectx, |
749 self.cleanpath(req.form['path'][0]))) | 752 self.cleanpath(req.form['path'][0]))) |
750 | 753 |
753 | 756 |
754 def do_summary(self, req): | 757 def do_summary(self, req): |
755 req.write(self.summary()) | 758 req.write(self.summary()) |
756 | 759 |
757 def do_filediff(self, req): | 760 def do_filediff(self, req): |
758 req.write(self.filediff(self.cleanpath(req.form['file'][0]), | 761 ctx = self.repo.changectx(req.form['node'][0]) |
759 req.form['node'][0])) | 762 fctx = ctx.filectx(self.cleanpath(req.form['file'][0])) |
763 req.write(self.filediff(fctx)) | |
760 | 764 |
761 def do_file(self, req): | 765 def do_file(self, req): |
762 req.write(self.filerevision(req.filectx)) | 766 req.write(self.filerevision(req.filectx)) |
763 | 767 |
764 def do_annotate(self, req): | 768 def do_annotate(self, req): |