changeset 30081:dd0ff715a82c

hgweb: make fctx.annotate a separated function so it could be wrapped This patch moves "fctx.annotate" used by the "annotate" webcommand, along with the diffopts to a separated function which takes a ui and a fctx. So it could be replaced by other implementations which don't want to replace the core "fctx.annotate" directly.
author Jun Wu <quark@fb.com>
date Sat, 08 Oct 2016 16:10:34 +0100
parents 33e8a5a00007
children ebc03e64548a
files mercurial/hgweb/webcommands.py mercurial/hgweb/webutil.py
diffstat 2 files changed, 7 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/hgweb/webcommands.py	Tue Oct 04 20:49:59 2016 +0800
+++ b/mercurial/hgweb/webcommands.py	Sat Oct 08 16:10:34 2016 +0100
@@ -31,7 +31,6 @@
     encoding,
     error,
     graphmod,
-    patch,
     revset,
     scmutil,
     templatefilters,
@@ -861,8 +860,6 @@
     fctx = webutil.filectx(web.repo, req)
     f = fctx.path()
     parity = paritygen(web.stripecount)
-    diffopts = patch.difffeatureopts(web.repo.ui, untrusted=True,
-                                     section='annotate', whitespace=True)
 
     def parents(f):
         for p in f.parents():
@@ -877,8 +874,8 @@
                   or 'application/octet-stream')
             lines = [((fctx.filectx(fctx.filerev()), 1), '(binary:%s)' % mt)]
         else:
-            lines = fctx.annotate(follow=True, linenumber=True,
-                                  diffopts=diffopts)
+            lines = webutil.annotate(fctx, web.repo.ui)
+
         previousrev = None
         blockparitygen = paritygen(1)
         for lineno, ((f, targetline), l) in enumerate(lines):
--- a/mercurial/hgweb/webutil.py	Tue Oct 04 20:49:59 2016 +0800
+++ b/mercurial/hgweb/webutil.py	Sat Oct 08 16:10:34 2016 +0100
@@ -164,6 +164,11 @@
     def __len__(self):
         return len(self.siblings)
 
+def annotate(fctx, ui):
+    diffopts = patch.difffeatureopts(ui, untrusted=True,
+                                     section='annotate', whitespace=True)
+    return fctx.annotate(follow=True, linenumber=True, diffopts=diffopts)
+
 def parents(ctx, hide=None):
     if isinstance(ctx, context.basefilectx):
         introrev = ctx.introrev()