changeset 49647:566f7dd563c1 stable

scmutil: make checknewlabel() allow "_" in otherwise numeric names (issue6737)
author Anton Shestakov <av6@dwimlabs.net>
date Sat, 28 Jan 2023 18:26:28 +0400
parents c3a76efd0b1c
children 84680c003d44
files mercurial/scmutil.py tests/test-branches.t
diffstat 2 files changed, 10 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/scmutil.py	Mon Jan 09 17:48:54 2023 +0100
+++ b/mercurial/scmutil.py	Sat Jan 28 18:26:28 2023 +0400
@@ -278,6 +278,11 @@
             )
     try:
         int(lbl)
+        if b'_' in lbl:
+            # If label contains underscores, Python might consider it an
+            # integer (with "_" as visual separators), but we do not.
+            # See PEP 515 - Underscores in Numeric Literals.
+            raise ValueError
         raise error.InputError(_(b"cannot use an integer as a name"))
     except ValueError:
         pass
--- a/tests/test-branches.t	Mon Jan 09 17:48:54 2023 +0100
+++ b/tests/test-branches.t	Sat Jan 28 18:26:28 2023 +0400
@@ -82,6 +82,11 @@
   (use 'hg update' to switch to it)
   [10]
 
+underscores in numeric branch names (issue6737)
+
+  $ hg branch 2700_210
+  marked working directory as branch 2700_210
+
 verify update will accept invalid legacy branch names
 
   $ hg init test-invalid-branch-name