[PATCH stable] branch: strip whitespace before testing known branch name

Kevin Bullock kbullock+mercurial at ringworld.org
Fri May 10 11:55:31 CDT 2013


On 10 May 2013, at 11:07 AM, Yuya Nishihara wrote:

> On Thu, 9 May 2013 14:58:43 -0500, Kevin Bullock wrote:
>> On 7 May 2013, at 5:45 PM, Yuya Nishihara wrote:
>>> # HG changeset patch
>>> # User Yuya Nishihara <yuya at tcha.org>
>>> # Date 1367938143 -32400
>>> #      Tue May 07 23:49:03 2013 +0900
>>> # Branch stable
>>> # Node ID f42a6337cac2c3920fb7587797ada022c1141182
>>> # Parent  0a12e5f3a979ee302dc10647483200df00a105ab
>>> 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.
>> 
>> This should be done in scmutil.checknewlabel() if possible. It's already done
>> for tags, and should apply to bookmarks as well.
> 
> It seems checknewlabel() is a bit different. checknewlabel() tests invalid
> label, which is mandatory check. But in this case, it's valid to have multiple
> branch heads of the same name.
> 
> This patch tries to address the following problem:
> 
> - "hg branch ' foo '" creates the branch "foo" on next commit.
> - but it bypasses "label in repo.branchmap()", and thus doesn't abort even
>   if there exists the branch "foo" in another head.

Ahh. Well, we eventually want to move the name-collision checks into checknewlabel() -- that's what the 'kind' parameter is there for. But for now this looks good. Crewed on stable, thanks.

pacem in terris / мир / शान्ति / ‎‫سَلاَم‬ / 平和
Kevin R. Bullock



More information about the Mercurial-devel mailing list