D4042: shortest: use 'x' prefix to disambiguate from revnum if configured
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Sat Aug 4 01:26:31 EDT 2018
martinvonz updated this revision to Diff 9890.
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D4042?vs=9758&id=9890
REVISION DETAIL
https://phab.mercurial-scm.org/D4042
AFFECTED FILES
mercurial/scmutil.py
tests/test-template-functions.t
CHANGE DETAILS
diff --git a/tests/test-template-functions.t b/tests/test-template-functions.t
--- a/tests/test-template-functions.t
+++ b/tests/test-template-functions.t
@@ -892,6 +892,11 @@
$ hg log -r 4 -T '{rev}:{shortest(node, 0)}\n' --hidden
4:107
+ $ hg --config experimental.revisions.prefixhexnode=yes log -r 4 -T '{rev}:{shortest(node, 0)}\n'
+ 4:x10
+ $ hg --config experimental.revisions.prefixhexnode=yes log -r 4 -T '{rev}:{shortest(node, 0)}\n' --hidden
+ 4:x10
+
node 'c562' should be unique if the other 'c562' nodes are hidden
(but we don't try the slow path to filter out hidden nodes for now)
diff --git a/mercurial/scmutil.py b/mercurial/scmutil.py
--- a/mercurial/scmutil.py
+++ b/mercurial/scmutil.py
@@ -490,6 +490,12 @@
def disambiguate(prefix):
"""Disambiguate against revnums."""
+ if repo.ui.configbool('experimental', 'revisions.prefixhexnode'):
+ if mayberevnum(repo, prefix):
+ return 'x' + prefix
+ else:
+ return prefix
+
hexnode = hex(node)
for length in range(len(prefix), len(hexnode) + 1):
prefix = hexnode[:length]
To: martinvonz, #hg-reviewers, lothiraldan
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list