D5791: debugcommands: add a debugpathcopies command
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Thu Jan 31 19:55:46 EST 2019
martinvonz created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
I've been working on storing copy metadata in the changelog instead of
the filelog and this has been useful for debugging.
Do we usually add tests for these?
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D5791
AFFECTED FILES
mercurial/debugcommands.py
tests/test-completion.t
tests/test-help.t
CHANGE DETAILS
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
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:
debugpeer:
debugpickmergetool: rev, changedelete, include, exclude, tool
debugpushkey:
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')
+ at 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"""
To: martinvonz, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list