情况如下:开发人员 Foo 从我们的 svn 存储库创建了一个 hg 存储库。Foo 的 hg repo 只是 svn 中树干的浅层克隆(没有 svn 分支、标签等,历史不完整 [大约 100 个变更集])。Developer Bar 做了同样的事情,但是克隆了整个 svn 存储库,包括整个历史、分支、标签等。Foo 和 Bar 都在他们的存储库上进行了分支开发。
两个存储库都有一个共同的 SVN 祖先,但每个 hg 存储库都有不同的版本号。我想将 Foo 从共同祖先的更改重新添加到 Bar 的存储库中。这是我正在寻找的图表:
Foo 的回购:
C'-D'-E-F---G
\ /
H-I
酒吧的回购:
...A-B-C-D-J-K---L
\ /
M-N
C,C' 和 D,D' 内容相同,但版本号和注释不同。
目标:
...A-B-C-D--E-F---G
\ \ /
\ H-I
\
J-K---L
\ /
M-N
我已经没有关于如何实现这一点的想法了。我试过 convert --splicemap splice.map [splice.map file contains ED] (没有做任何事情)。Clone -f 设法将所有内容都放入一个存储库中,但它们似乎是独立的树。在 clone -f 之后,我尝试了 rebase --source E --dest D --detach,但它只是崩溃了:(
想法?
我知道更改历史将使任何人的存储库克隆无效,在这种情况下这不是问题。所有用户都将从这项工作的结果中重新克隆。