hg:更改命名分支的根目录

时间:2014-03-24 16:34:44

标签: version-control mercurial branch tortoisehg

我在我们的存储库中为一个功能创建了一个命名分支 - 但是,根据我更好的判断,我分支了我们的头版本而不是更早版本(我分支了多个功能分支)。

我已经对这个分支做了一些提交 - 它们只是本地的,尚未推送 - 但是我想将分支根移动到我的默认分支上的早期版本。我不想对我的提交进行任何更改(因为没有任何冲突);我基本上只想更改分支来自的父版本,如果可能的话。

如何在Mercurial中轻松完成此操作?

2 个答案:

答案 0 :(得分:2)

  

只想更改分支来自的父修订版

只需改变:hg rebase -s MOVED_ROOT -d NEW_PARENT_OF_MOVED_ROOT --keepbranches

答案 1 :(得分:0)

嗯,它比调用一个命令要复杂一点,但你可以这样做:

  1. 将分支变更集导出到补丁文件
  2. 剥离分支变更集
  3. 更新到早期版本并创建新分支
  4. 从补丁文件导入变更集
  5. 以下是命令的示例列表:

    hg init
    echo "Hello" > readme.txt
    hg addremove
    hg commit -m "Hello added"
    echo "Hello2" >> readme.txt
    hg commit -m "Hello2 added"
    hg branch feature
    echo "Feature added" >> readme.txt
    hg commit -m "Feature added"
    echo "Feature2 added" >> readme.txt
    hg commit -m "Feature2 added"
    hg export -o patch 2:3
    hg strip 2:3
    hg up 0
    hg branch feature
    hg import patch
    

    P.S。对于strip命令,您需要启用mq扩展名。