##// END OF EJS Templates
hgweb: add methods to get contexts from request
Brendan Cully -
r3226:5c602877 default
parent child Browse files
Show More
@@ -648,25 +648,6 b' class hgweb(object):'
648 form[name] = value
648 form[name] = value
649 del form[k]
649 del form[k]
650
650
651 if form.has_key('manifest'):
652 changeid = form['manifest'][0]
653 try:
654 req.changectx = self.repo.changectx(changeid)
655 except hg.RepoError:
656 man = self.repo.manifest
657 mn = man.lookup(changeid)
658 req.changectx = self.repo.changectx(man.linkrev(mn))
659
660 if form.has_key('filenode'):
661 changeid = form['filenode'][0]
662 path = self.cleanpath(form['file'][0])
663 try:
664 req.changectx = self.repo.changectx(changeid)
665 req.filectx = req.changectx.filectx(path)
666 except hg.RepoError:
667 req.filectx = self.repo.filectx(path, fileid=changeid)
668 req.changectx = req.filectx.changectx()
669
670 self.refresh()
651 self.refresh()
671
652
672 expand_form(req.form)
653 expand_form(req.form)
@@ -710,6 +691,34 b' class hgweb(object):'
710 else:
691 else:
711 req.write(self.t("error"))
692 req.write(self.t("error"))
712
693
694 def changectx(self, req):
695 if req.form.has_key('node'):
696 changeid = req.form['node'][0]
697 else:
698 changeid = req.form['manifest'][0]
699 try:
700 ctx = self.repo.changectx(changeid)
701 except hg.RepoError:
702 man = self.repo.manifest
703 mn = man.lookup(changeid)
704 ctx = self.repo.changectx(man.linkrev(mn))
705
706 return ctx
707
708 def filectx(self, req):
709 path = self.cleanpath(req.form['file'][0])
710 if req.form.has_key('node'):
711 changeid = req.form['node'][0]
712 else:
713 changeid = req.form['filenode'][0]
714 try:
715 ctx = self.repo.changectx(changeid)
716 fctx = ctx.filectx(path)
717 except hg.RepoError:
718 fctx = self.repo.filectx(path, fileid=changeid)
719
720 return fctx
721
713 def stripes(self, parity):
722 def stripes(self, parity):
714 "make horizontal stripes for easier reading"
723 "make horizontal stripes for easier reading"
715 if self.stripecount:
724 if self.stripecount:
@@ -717,38 +726,31 b' class hgweb(object):'
717 else:
726 else:
718 return 0
727 return 0
719
728
720 def do_changelog(self, req):
729 def do_changelog(self, req, shortlog = False):
721 if req.form.has_key('rev'):
730 if req.form.has_key('node'):
722 hi = req.form['rev'][0]
731 ctx = self.changectx(req)
723 else:
732 else:
724 hi = self.repo.changelog.count() - 1
733 if req.form.has_key('rev'):
725 try:
734 hi = req.form['rev'][0]
726 ctx = self.repo.changectx(hi)
735 else:
727 except hg.RepoError:
736 hi = self.repo.changelog.count() - 1
728 req.write(self.search(hi)) # XXX redirect to 404 page?
737 try:
729 return
738 ctx = self.repo.changectx(hi)
739 except hg.RepoError:
740 req.write(self.search(hi)) # XXX redirect to 404 page?
741 return
730
742
731 req.write(self.changelog(ctx))
743 req.write(self.changelog(ctx, shortlog = shortlog))
732
744
733 def do_shortlog(self, req):
745 def do_shortlog(self, req):
734 if req.form.has_key('rev'):
746 self.do_changelog(req, shortlog = True)
735 hi = req.form['rev'][0]
736 else:
737 hi = self.repo.changelog.count() - 1
738 try:
739 hi = self.repo.changectx(hi)
740 except hg.RepoError:
741 req.write(self.search(hi)) # XXX redirect to 404 page?
742 return
743
744 req.write(self.changelog(ctx, shortlog = True))
745
747
746 def do_changeset(self, req):
748 def do_changeset(self, req):
747 ctx = self.repo.changectx(req.form['node'][0])
749 ctx = self.repo.changectx(req.form['node'][0])
748 req.write(self.changeset(ctx))
750 req.write(self.changeset(ctx))
749
751
750 def do_manifest(self, req):
752 def do_manifest(self, req):
751 req.write(self.manifest(req.changectx,
753 req.write(self.manifest(self.changectx(req),
752 self.cleanpath(req.form['path'][0])))
754 self.cleanpath(req.form['path'][0])))
753
755
754 def do_tags(self, req):
756 def do_tags(self, req):
@@ -758,18 +760,16 b' class hgweb(object):'
758 req.write(self.summary())
760 req.write(self.summary())
759
761
760 def do_filediff(self, req):
762 def do_filediff(self, req):
761 ctx = self.repo.changectx(req.form['node'][0])
763 req.write(self.filediff(self.filectx(req)))
762 fctx = ctx.filectx(self.cleanpath(req.form['file'][0]))
763 req.write(self.filediff(fctx))
764
764
765 def do_file(self, req):
765 def do_file(self, req):
766 req.write(self.filerevision(req.filectx))
766 req.write(self.filerevision(self.filectx(req)))
767
767
768 def do_annotate(self, req):
768 def do_annotate(self, req):
769 req.write(self.fileannotate(req.filectx))
769 req.write(self.fileannotate(self.filectx(req)))
770
770
771 def do_filelog(self, req):
771 def do_filelog(self, req):
772 req.write(self.filelog(req.filectx))
772 req.write(self.filelog(self.filectx(req)))
773
773
774 def do_heads(self, req):
774 def do_heads(self, req):
775 resp = " ".join(map(hex, self.repo.heads())) + "\n"
775 resp = " ".join(map(hex, self.repo.heads())) + "\n"
General Comments 0
You need to be logged in to leave comments. Login now