diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -3887,12 +3887,12 @@ # then filter the result by logcmdutil._makerevset() and --limit revs, differ = logcmdutil.getlinerangerevs(repo, revs, opts) - getrenamed = None + getcopies = None if opts.get('copies'): endrev = None if revs: endrev = revs.max() + 1 - getrenamed = scmutil.getrenamedfn(repo, endrev=endrev) + getcopies = scmutil.getcopiesfn(repo, endrev=endrev) ui.pager('log') displayer = logcmdutil.changesetdisplayer(ui, repo, opts, differ, @@ -3901,7 +3901,7 @@ displayfn = logcmdutil.displaygraphrevs else: displayfn = logcmdutil.displayrevs - displayfn(ui, repo, revs, displayer, getrenamed) + displayfn(ui, repo, revs, displayer, getcopies) @command('manifest', [('r', 'rev', '', _('revision to display'), _('REV')), diff --git a/mercurial/logcmdutil.py b/mercurial/logcmdutil.py --- a/mercurial/logcmdutil.py +++ b/mercurial/logcmdutil.py @@ -862,7 +862,7 @@ return templ.renderdefault(props) return formatnode -def displaygraph(ui, repo, dag, displayer, edgefn, getrenamed=None, props=None): +def displaygraph(ui, repo, dag, displayer, edgefn, getcopies=None, props=None): props = props or {} formatnode = _graphnodeformatter(ui, displayer) state = graphmod.asciistate() @@ -890,13 +890,7 @@ for rev, type, ctx, parents in dag: char = formatnode(repo, ctx) - copies = None - if getrenamed: - copies = [] - for fn in ctx.files(): - rename = getrenamed(fn, ctx.rev()) - if rename: - copies.append((fn, rename)) + copies = getcopies(ctx) if getcopies else None edges = edgefn(type, char, state, rev, parents) firstedge = next(edges) width = firstedge[2] @@ -915,16 +909,10 @@ revdag = graphmod.dagwalker(repo, revs) displaygraph(ui, repo, revdag, displayer, graphmod.asciiedges, getrenamed) -def displayrevs(ui, repo, revs, displayer, getrenamed): +def displayrevs(ui, repo, revs, displayer, getcopies): for rev in revs: ctx = repo[rev] - copies = None - if getrenamed is not None: - copies = [] - for fn in ctx.files(): - rename = getrenamed(fn, rev) - if rename: - copies.append((fn, rename)) + copies = getcopies(ctx) if getcopies else None displayer.show(ctx, copies=copies) displayer.flush(ctx) displayer.close()