2

我有一个名称中包含冒号 (':') 的分支。我怎样才能关闭它?

我无法完全更新它(目录中的文件在“hg up”之后会更新,尽管我收到一条错误消息“abort: ':' cannot be used in a name”;并且“hg summary”显示正确修订号和标签,但以前的分支名称)。“hg ci --close-branch”以“abort:只能关闭分支头”退出。

我可以通过具有正确名称的变更集以这种方式重新提交它,然后使用克隆或剥离修剪旧的变更集,但我想知道是否有另一种解决方案。

UPD 我已经使用了解决方法,但仍然想知道一个简单的解决方案,因为其他人可能会觉得它有帮助。

4

2 回答 2

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
于 2012-11-18T19:07:49.757 回答
0

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

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

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

于 2012-11-26T19:55:46.167 回答