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
--- 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,