comparison mercurial/scmutil.py @ 44810:62435a5b46fe

revisions: parse "x123" as "nodeid starting with 123" without prefixhexnode `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. Differential Revision: https://phab.mercurial-scm.org/D8514
author Martin von Zweigbergk <martinvonz@google.com>
date Mon, 11 May 2020 09:07:31 -0700
parents fdc802f29b2c
children 5d8ae9248a70
comparison
equal deleted inserted replaced
44809:07a6a29d25ea 44810:62435a5b46fe
454 hexfunc = short 454 hexfunc = short
455 return b'%d:%s' % (rev, hexfunc(node)) 455 return b'%d:%s' % (rev, hexfunc(node))
456 456
457 457
458 def resolvehexnodeidprefix(repo, prefix): 458 def resolvehexnodeidprefix(repo, prefix):
459 if prefix.startswith(b'x') and repo.ui.configbool( 459 if prefix.startswith(b'x'):
460 b'experimental', b'revisions.prefixhexnode'
461 ):
462 prefix = prefix[1:] 460 prefix = prefix[1:]
463 try: 461 try:
464 # Uses unfiltered repo because it's faster when prefix is ambiguous/ 462 # Uses unfiltered repo because it's faster when prefix is ambiguous/
465 # This matches the shortesthexnodeidprefix() function below. 463 # This matches the shortesthexnodeidprefix() function below.
466 node = repo.unfiltered().changelog._partialmatch(prefix) 464 node = repo.unfiltered().changelog._partialmatch(prefix)