在mercurial中使用默认分支切换分支

时间:2012-06-05 05:01:21

标签: mercurial branch rename

在我正在工作的仓库中,我们在某个时间创建了一个命名分支,以便在某个问题上尝试不同的方法。我们继续在默认分支中工作。

既然命名分支已经成熟,我们想要创建那个分支,默认分支,并为(旧)默认分支指定一个不同的名称。

这样的事情可能吗?

我发现了这个问题Mercurial: Can I rename a branch?,我可以成功重命名默认分支,但之后当我尝试将命名分支重命名为默认分支时,它失败并显示错误

abort: a branch of the same name already exists

1 个答案:

答案 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"

结果:

enter image description here

>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