diff --git a/mercurial/debugcommands.py b/mercurial/debugcommands.py --- a/mercurial/debugcommands.py +++ b/mercurial/debugcommands.py @@ -38,6 +38,7 @@ cmdutil, color, context, + copies, dagparser, encoding, error, @@ -1804,6 +1805,18 @@ ui.write('\n'.join(repo.pathto(p, cwd) for p in sorted(files))) ui.write('\n') +@command('debugpathcopies', + cmdutil.walkopts, + 'hg debugcopies REV1 REV2 [FILE]', + inferrepo=True) +def debugpathcopies(ui, repo, rev1, rev2, *pats, **opts): + """show copies between two revisions""" + ctx1 = scmutil.revsingle(repo, rev1) + ctx2 = scmutil.revsingle(repo, rev2) + m = scmutil.match(ctx1, pats, opts) + for dst, src in copies.pathcopies(ctx1, ctx2, m).items(): + ui.write('%s -> %s\n' % (src, dst)) + @command('debugpeer', [], _('PATH'), norepo=True) def debugpeer(ui, path): """establish a connection to a peer repository""" diff --git a/tests/test-completion.t b/tests/test-completion.t --- a/tests/test-completion.t +++ b/tests/test-completion.t @@ -104,6 +104,7 @@ debugnamecomplete debugobsolete debugpathcomplete + debugpathcopies debugpeer debugpickmergetool debugpushkey @@ -280,6 +281,7 @@ debugnamecomplete: debugobsolete: flags, record-parents, rev, exclusive, index, delete, date, user, template debugpathcomplete: full, normal, added, removed + debugpathcopies: include, exclude debugpeer: debugpickmergetool: rev, changedelete, include, exclude, tool debugpushkey: diff --git a/tests/test-help.t b/tests/test-help.t --- a/tests/test-help.t +++ b/tests/test-help.t @@ -1014,6 +1014,8 @@ debugoptEXP (no help text available) debugpathcomplete complete part or all of a tracked path + debugpathcopies + show copies between two revisions debugpeer establish a connection to a peer repository debugpickmergetool examine which merge tool is chosen for specified file