[Bug 3710] New: Cannot update to a branch with ':' in the name

bugzilla-daemon at bz.selenic.com bugzilla-daemon at bz.selenic.com
Mon Nov 26 10:19:08 CST 2012


http://bz.selenic.com/show_bug.cgi?id=3710

          Priority: normal
            Bug ID: 3710
                CC: mercurial-devel at selenic.com
          Assignee: bugzilla at selenic.com
           Summary: Cannot update to a branch with ':' in the name
          Severity: bug
    Classification: Unclassified
                OS: All
          Reporter: tim.henigan at gmail.com
          Hardware: All
            Status: UNCONFIRMED
           Version: 2.4
         Component: Mercurial
           Product: Mercurial

The organization I work for has a multi-year history with many repos that
include ":" in branch names.  While this violated naming conventions, there was
nothing in the actual command logic that prevented their use (until recently).

Starting with 361ab1e2086f, it is no longer possible to update a working copy
to a branch that includes a ":" in the name.  I have not been able to find any
work-arounds using revsets or revision numbers.  Furthermore, in repos with
"bad" branches, I can no longer even update to the 'default' branch.

I saw in earlier discussions [1], the plan to abort if the user tries to create
a new branch with a "bad" character.  From that thread, I thought the plan was
to continue to allow users to update to existing branches with bad names (to
maintain backwards compatibility).

Starting with v2.4, this no longer seems possible.  I started looking into the
code (specifically, the setbranch function in dirstate.py), but I am not sure
how best to proceed.

Here is a stack trace from Mercurial v2.4 showing the error:

C:\project>hg version
Mercurial Distributed SCM (version 2.4+6-35ba170c0f82)

C:\project>hg up default -C --traceback
Traceback (most recent call last):
  File "mercurial\dispatch.pyo", line 88, in _runcatch
  File "mercurial\dispatch.pyo", line 741, in _dispatch
  File "mercurial\dispatch.pyo", line 514, in runcommand
  File "mercurial\extensions.pyo", line 189, in wrap
  File "hgext\color.pyo", line 371, in colorcmd
  File "mercurial\dispatch.pyo", line 831, in _runcommand
  File "mercurial\dispatch.pyo", line 802, in checkargs
  File "mercurial\dispatch.pyo", line 738, in <lambda>
  File "mercurial\util.pyo", line 472, in check
  File "mercurial\extensions.pyo", line 144, in wrap
  File "mercurial\util.pyo", line 472, in check
  File "hgext\mq.pyo", line 3546, in mqcommand
  File "mercurial\util.pyo", line 472, in check
  File "mercurial\commands.pyo", line 5914, in update
  File "mercurial\hg.pyo", line 483, in clean
  File "mercurial\hg.pyo", line 468, in updaterepo
  File "mercurial\merge.pyo", line 632, in update
  File "mercurial\merge.pyo", line 416, in applyupdates
  File "mercurial\subrepo.pyo", line 144, in submerge
  File "mercurial\subrepo.pyo", line 526, in get
  File "mercurial\hg.pyo", line 468, in updaterepo
  File "mercurial\merge.pyo", line 638, in update
  File "mercurial\dirstate.pyo", line 264, in setbranch
  File "mercurial\scmutil.pyo", line 35, in checknewlabel
Abort: ':' cannot be used in a name
abort: ':' cannot be used in a name

[1]:
http://thread.gmane.org/gmane.comp.version-control.mercurial.devel/45915/focus=45916

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Mercurial-devel mailing list