# HG changeset patch # User Augie Fackler # Date 1588884857 14400 # Node ID 3b7aabd02e11fcfc015b3a90a0c52d971a7b8a83 # Parent 118f067f6bd13f01069b8174b2520a1cf48b506d 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 diff -r 118f067f6bd1 -r 3b7aabd02e11 hgext/mq.py --- 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): diff -r 118f067f6bd1 -r 3b7aabd02e11 mercurial/commands.py --- 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'), diff -r 118f067f6bd1 -r 3b7aabd02e11 mercurial/logcmdutil.py --- 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, diff -r 118f067f6bd1 -r 3b7aabd02e11 mercurial/subrepo.py --- 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,