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