changeset 19180:12dbdd348bb0 stable

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.
author Yuya Nishihara <yuya@tcha.org>
date Tue, 07 May 2013 23:49:03 +0900
parents bcdfb6078b9f
children 9d88916fb56f
files mercurial/commands.py tests/test-branches.t
diffstat 2 files changed, 15 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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