D4041: revisions: allow "x123" to refer to nodeid prefix "123"
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Sat Aug 4 01:26:32 EDT 2018
martinvonz updated this revision to Diff 9889.
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D4041?vs=9757&id=9889
REVISION DETAIL
https://phab.mercurial-scm.org/D4041
AFFECTED FILES
mercurial/configitems.py
mercurial/scmutil.py
tests/test-revset.t
CHANGE DETAILS
diff --git a/tests/test-revset.t b/tests/test-revset.t
--- a/tests/test-revset.t
+++ b/tests/test-revset.t
@@ -1773,6 +1773,16 @@
Test hexadecimal revision
$ log 'id(2)'
+ $ log 'id(5)'
+ 2
+ $ hg --config experimental.revisions.prefixhexnode=yes log --template '{rev}\n' -r 'id(x5)'
+ 2
+ $ hg --config experimental.revisions.prefixhexnode=yes log --template '{rev}\n' -r 'x5'
+ 2
+ $ hg --config experimental.revisions.prefixhexnode=yes log --template '{rev}\n' -r 'id(x)'
+ $ hg --config experimental.revisions.prefixhexnode=yes log --template '{rev}\n' -r 'x'
+ abort: 00changelog.i@: ambiguous identifier!
+ [255]
$ log 'id(23268)'
4
$ log 'id(2785f51eece)'
diff --git a/mercurial/scmutil.py b/mercurial/scmutil.py
--- a/mercurial/scmutil.py
+++ b/mercurial/scmutil.py
@@ -437,6 +437,9 @@
return '%d:%s' % (rev, hexfunc(node))
def resolvehexnodeidprefix(repo, prefix):
+ if (prefix.startswith('x') and
+ repo.ui.configbool('experimental', 'revisions.prefixhexnode')):
+ prefix = prefix[1:]
try:
# Uses unfiltered repo because it's faster when prefix is ambiguous/
# This matches the shortesthexnodeidprefix() function below.
diff --git a/mercurial/configitems.py b/mercurial/configitems.py
--- a/mercurial/configitems.py
+++ b/mercurial/configitems.py
@@ -587,6 +587,9 @@
coreconfigitem('experimental', 'removeemptydirs',
default=True,
)
+coreconfigitem('experimental', 'revisions.prefixhexnode',
+ default=False,
+)
coreconfigitem('experimental', 'revlogv2',
default=None,
)
To: martinvonz, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list