Mercurial > hg-stable
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,