关闭名称中带冒号':'的分支

时间:2012-11-16 20:01:38

标签: mercurial

我的名字中有一个包含冒号(':')的分支。我怎么能关闭呢?

我无法完全更新它(目录中的文件在“hg up”之后会更新,但我收到错误消息“abort:':'不能在名称中使用”;以及“hg summary”显示正确的修订号和标记,但是前一个分支名称)。 “hg ci --close-branch”以“中止:只能关闭分支头”退出。

我可以通过改变集以正确的名称改变它,然后使用clone或strip修剪旧的,但我想知道是否还有其他解决方案。

UPD我已经使用了解决方法,但仍想知道一个简单的解决方案,以及其他人可能会发现它有用。

2 个答案:

答案 0 :(得分:0)

你的问题不清楚,但是我能够在名称中创建一个带冒号的命名分支,通过修订号而不是名称更新它,并关闭它:

C:\temp>hg branches
blah:blah                      2:32fbac773905
default                        1:f132a6d0ce30

C:\temp>hg glog --template "{rev} {branch} {desc}\r\n"
o  2 blah:blah file3
|
| @  1 default file2
|/
o  0 default file1


C:\temp>hg update 2
1 files updated, 0 files merged, 1 files removed, 0 files unresolved

C:\temp>hg ci --close-branch -m closed

C:\temp>hg glog --template "{rev} {branch} {desc}\r\n"
@  3 blah:blah closed
|
o  2 blah:blah file3
|
| o  1 default file2
|/
o  0 default file1

答案 1 :(得分:0)

Mercurial的文档在这一点上有点误导:分支名称中的冒号被接受,但是当您尝试使用该名称时,它被误解为修订范围。为防止hg将blah:blah解析为范围,您可以将其编写为"branch('blah:blah')"。例如:

hg log -r "branch('blah: blah')"

以上适用于相对较新版本的mercurial。听起来你有其他与版本相关的问题,但试一试。