changeset 44889:3b7aabd02e11

cleanup: avoid extra node/ctx conversions in logcmdutil.diffordiffstat I'm about to write some code that wants to pass a memctx to diffordiffstat, but this feels like a meritorious cleanup anyway, since the first thing this method does is turn nodes into contexts, and most callers have a context handy. Differential Revision: https://phab.mercurial-scm.org/D8502
author Augie Fackler <augie@google.com>
date Thu, 07 May 2020 16:54:17 -0400
parents 118f067f6bd1
children 6d3768b11241
files hgext/mq.py mercurial/commands.py mercurial/logcmdutil.py mercurial/subrepo.py
diffstat 4 files changed, 19 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/mq.py	Tue May 12 13:06:34 2020 -0700
+++ b/hgext/mq.py	Thu May 07 16:54:17 2020 -0400
@@ -836,7 +836,15 @@
         stat = opts.get(b'stat')
         m = scmutil.match(repo[node1], files, opts)
         logcmdutil.diffordiffstat(
-            self.ui, repo, diffopts, node1, node2, m, changes, stat, fp
+            self.ui,
+            repo,
+            diffopts,
+            repo[node1],
+            repo[node2],
+            m,
+            changes,
+            stat,
+            fp,
         )
 
     def mergeone(self, repo, mergeq, head, patch, rev, diffopts):
--- a/mercurial/commands.py	Tue May 12 13:06:34 2020 -0700
+++ b/mercurial/commands.py	Thu May 07 16:54:17 2020 -0400
@@ -2502,8 +2502,8 @@
         ui,
         repo,
         diffopts,
-        node1,
-        node2,
+        repo[node1],
+        repo[node2],
         m,
         stat=stat,
         listsubrepos=opts.get(b'subrepos'),
--- a/mercurial/logcmdutil.py	Tue May 12 13:06:34 2020 -0700
+++ b/mercurial/logcmdutil.py	Thu May 07 16:54:17 2020 -0400
@@ -72,8 +72,8 @@
     ui,
     repo,
     diffopts,
-    node1,
-    node2,
+    ctx1,
+    ctx2,
     match,
     changes=None,
     stat=False,
@@ -85,8 +85,6 @@
     hunksfilterfn=None,
 ):
     '''show diff or diffstat.'''
-    ctx1 = repo[node1]
-    ctx2 = repo[node2]
     if root:
         relroot = pathutil.canonpath(repo.root, repo.getcwd(), root)
     else:
@@ -173,6 +171,7 @@
             for chunk, label in chunks:
                 ui.write(chunk, label=label)
 
+    node2 = ctx2.node()
     for subpath, sub in scmutil.itersubrepos(ctx1, ctx2):
         tempnode2 = node2
         try:
@@ -208,15 +207,12 @@
         return None
 
     def showdiff(self, ui, ctx, diffopts, graphwidth=0, stat=False):
-        repo = ctx.repo()
-        node = ctx.node()
-        prev = ctx.p1().node()
         diffordiffstat(
             ui,
-            repo,
+            ctx.repo(),
             diffopts,
-            prev,
-            node,
+            ctx.p1(),
+            ctx,
             match=self._makefilematcher(ctx),
             stat=stat,
             graphwidth=graphwidth,
--- a/mercurial/subrepo.py	Tue May 12 13:06:34 2020 -0700
+++ b/mercurial/subrepo.py	Thu May 07 16:54:17 2020 -0400
@@ -617,8 +617,8 @@
                 ui,
                 self._repo,
                 diffopts,
-                node1,
-                node2,
+                self._repo[node1],
+                self._repo[node2],
                 match,
                 prefix=prefix,
                 listsubrepos=True,