Patchwork D8514: revisions: parse "x123" as "nodeid starting with 123" without prefixhexnode

login
register
mail settings
Submitter phabricator
Date May 11, 2020, 4:27 p.m.
Message ID <differential-rev-PHID-DREV-c7bpilnyliozyl5pkbfm-req@mercurial-scm.org>
Download mbox | patch
Permalink /patch/46298/
State Superseded
Headers show

Comments

phabricator - May 11, 2020, 4:27 p.m.
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




To: martinvonz, #hg-reviewers
Cc: mercurial-patches, mercurial-devel

Patch

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/