branch: strip whitespace before testing known branch name
Because dirstate._branch() strips leading/trailing spaces from .hg/branch,
"hg branch ' foo '" should abort if branch "foo" exists in another head.
tag command had a similar bug and fixed by
3d0a9c8d7184.
--- a/mercurial/commands.py Fri May 10 00:26:39 2013 +0400
+++ b/mercurial/commands.py Tue May 07 23:49:03 2013 +0900
@@ -943,6 +943,9 @@
Returns 0 on success.
"""
+ if label:
+ label = label.strip()
+
if not opts.get('clean') and not label:
ui.write("%s\n" % repo.dirstate.branch())
return
--- a/tests/test-branches.t Fri May 10 00:26:39 2013 +0400
+++ b/tests/test-branches.t Tue May 07 23:49:03 2013 +0900
@@ -68,6 +68,18 @@
abort: '\n' cannot be used in a name
[255]
+trailing or leading spaces should be stripped before testing duplicates
+
+ $ hg branch 'b '
+ abort: a branch of the same name already exists
+ (use 'hg update' to switch to it)
+ [255]
+
+ $ hg branch ' b'
+ abort: a branch of the same name already exists
+ (use 'hg update' to switch to it)
+ [255]
+
verify update will accept invalid legacy branch names
$ hg init test-invalid-branch-name