[Request] [+ ] D8514: revisions: parse "x123" as "nodeid starting with 123" without prefixhexnode
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Mon May 11 16:27:11 UTC 2020
martinvonz created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.
REVISION SUMMARY
`experimental.revisions.prefixhexnode` makes it so the template
function `shortest()` uses an "x" prefix to disambiguate between short
nodeids and revnums. That config has so far also been used for
enabling parsing of "x123" unambiguously as a nodeid. That makes it a
little annoying for people who have prefixhexnode=yes to share such
nodeids with people who have prefixhexnode=no ("x123" will be
considered invalid for them). There seems to be little harm in
allowing that parsing for everyone. We still let e.g. bookmark names
like "x123" take precedence over the nodeid, so that's not a
concern. The only thing I can think of is that people get used to the
"x" prefix being valid, making it impossible for us to change to a
different prefix if we wanted to do that when graduating the feature.
REPOSITORY
rHG Mercurial
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D8514
AFFECTED FILES
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
@@ -1864,12 +1864,12 @@
$ log 'id(2)'
$ log 'id(8)'
3
- $ hg --config experimental.revisions.prefixhexnode=yes log --template '{rev}\n' -r 'id(x8)'
+ $ hg log --template '{rev}\n' -r 'id(x8)'
3
- $ hg --config experimental.revisions.prefixhexnode=yes log --template '{rev}\n' -r 'x8'
+ $ hg log --template '{rev}\n' -r 'x8'
3
- $ 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'
+ $ hg log --template '{rev}\n' -r 'id(x)'
+ $ hg log --template '{rev}\n' -r 'x'
abort: 00changelog.i@: ambiguous identifier!
[255]
$ log 'id(23268)'
diff --git a/mercurial/scmutil.py b/mercurial/scmutil.py
--- a/mercurial/scmutil.py
+++ b/mercurial/scmutil.py
@@ -456,9 +456,7 @@
def resolvehexnodeidprefix(repo, prefix):
- if prefix.startswith(b'x') and repo.ui.configbool(
- b'experimental', b'revisions.prefixhexnode'
- ):
+ if prefix.startswith(b'x'):
prefix = prefix[1:]
try:
# Uses unfiltered repo because it's faster when prefix is ambiguous/
To: martinvonz, #hg-reviewers
Cc: mercurial-patches, mercurial-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mercurial-scm.org/pipermail/mercurial-patches/attachments/20200511/071d0ecc/attachment.html>
More information about the Mercurial-patches
mailing list