[Request] [+- ] D8502: cleanup: avoid extra node/ctx conversions in logcmdutil.diffordiffstat
durin42 (Augie Fackler)
phabricator at mercurial-scm.org
Thu May 7 21:27:32 UTC 2020
durin42 created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.
REVISION SUMMARY
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.
REPOSITORY
rHG Mercurial
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D8502
AFFECTED FILES
hgext/mq.py
mercurial/commands.py
mercurial/logcmdutil.py
mercurial/subrepo.py
CHANGE DETAILS
diff --git a/mercurial/subrepo.py b/mercurial/subrepo.py
--- a/mercurial/subrepo.py
+++ b/mercurial/subrepo.py
@@ -617,8 +617,8 @@
ui,
self._repo,
diffopts,
- node1,
- node2,
+ self._repo[node1],
+ self._repo[node2],
match,
prefix=prefix,
listsubrepos=True,
diff --git a/mercurial/logcmdutil.py b/mercurial/logcmdutil.py
--- a/mercurial/logcmdutil.py
+++ b/mercurial/logcmdutil.py
@@ -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,
diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -2504,8 +2504,8 @@
ui,
repo,
diffopts,
- node1,
- node2,
+ repo[node1],
+ repo[node2],
m,
stat=stat,
listsubrepos=opts.get(b'subrepos'),
diff --git a/hgext/mq.py b/hgext/mq.py
--- a/hgext/mq.py
+++ b/hgext/mq.py
@@ -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):
To: durin42, #hg-reviewers
Cc: mercurial-patches, mercurial-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mercurial-scm.org/pipermail/mercurial-patches/attachments/20200507/859788ea/attachment-0001.html>
More information about the Mercurial-patches
mailing list