我的存储库的历史如下所示:
A -- B -- C (branch "foo")
      \
       -- D (branch "bar")
这两个分支都是“运输”分支,本质上是不同的前端到一个共同的后端。
所有代码过去都在一个分支中,通过编译器开关打开或关闭foo或功能,但我进行了分支以便更容易单独处理每个代码。bar
问题是,常见的“后端”文件本身可能应该是一个单独的分支——我经常只想处理那些常见的文件。由于我创建这些分支的方式,历史有点搞砸了:在 branchbar的过去,它曾经具有来自foo.
目前,我只是在一个分支上进行更改,然后使用hg transplant将相同的更改复制到另一个分支。
相反,我希望能够以这种方式进行更改:
       __ C __ D'   (branch "foo")
      /      /
A -- B -- D         (branch "backend")
      \      \
       -- E -- D''  (branch "bar")
也就是说,在分支上工作backend,然后在每个运输分支(foo和bar)中,我使用hg merge backend.
从我目前的情况到我所描述的情况的最佳方式是什么?我能想到的唯一方法是:
删除所有
foo和bar功能,并命名该分支backend。删除旧的
foo和bar分支。手动添加
foo功能backend并命名该分支foo,同样为bar.
有没有更好的办法?
另外,这是正确的做法吗?