在我正在工作的仓库中,我们在某个时间创建了一个命名分支,以便在某个问题上尝试不同的方法。我们继续在默认分支中工作。
既然命名分支已经成熟,我们想要创建那个分支,默认分支,并为(旧)默认分支指定一个不同的名称。
这样的事情可能吗?
我发现了这个问题Mercurial: Can I rename a branch?,我可以成功重命名默认分支,但之后当我尝试将命名分支重命名为默认分支时,它失败并显示错误
abort: a branch of the same name already exists
答案 0 :(得分:7)
是的,你可以。
您需要关闭所有分支,然后为其提供所需的名称
PS:好像你只需要在分支命令
中添加-f
标志
示例场景
hg init
echo "123" > file
hg addremove
hg commit -m "init default"
hg branch new
echo "new" >> file
hg commit -m "init new"
hg up default
echo "default" >> file
hg commit -m "default 2nd"
hg commit --close-branch -m "close default"
hg up new
hg commit --close-branch -m "close new"
hg branches # none
hg log # see where to update if haven't saved id/hash somewhere
hg up 3 # this changset was the "close default" one
hg branch new -f
hg commit -m "new new"
hg up 4 # the changeset we closed "new" at
hg branch default -f
hg commit -m "new default"
结果:
>hg log -G
o changeset: 6:af87a53292cf
| tag: tip
| parent: 4:700a73ac7cad
| user: Ivan Kurnosov
| date: Tue Jun 05 17:22:27 2012 +1200
| summary: new default
|
| @ changeset: 5:4ee990605ba1
| | branch: new
| | parent: 3:6ebccfc3e630
| | user: "Ivan Kurnosov
| | date: Tue Jun 05 17:18:01 2012 +1200
| | summary: new new
| |
o | changeset: 4:700a73ac7cad
| | branch: new
| | parent: 1:4a149d3fe86e
| | user: "Ivan Kurnosov
| | date: Tue Jun 05 17:15:18 2012 +1200
| | summary: close new
| |
| o changeset: 3:6ebccfc3e630
| | user: "Ivan Kurnosov
| | date: Tue Jun 05 17:14:49 2012 +1200
| | summary: close default
| |
| o changeset: 2:92669a82423b
| | parent: 0:05657f61324b
| | user: "Ivan Kurnosov
| | date: Tue Jun 05 17:13:07 2012 +1200
| | summary: default 2nd
| |
o | changeset: 1:4a149d3fe86e
|/ branch: new
| user: "Ivan Kurnosov
| date: Tue Jun 05 17:12:30 2012 +1200
| summary: init new
|
o changeset: 0:05657f61324b
user: "Ivan Kurnosov
date: Tue Jun 05 17:11:51 2012 +1200
summary: init default