我的存储库的历史如下所示:
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
.
有没有更好的办法?
另外,这是正确的做法吗?