在将我的项目FakeItEasy的 VCS从 SVN 更改为 Google Code 上的 Mercurial 时,我有点太急切了(我很有趣)。我所做的只是从 SVN 中检查最新版本,然后将该检查提交为新 Mercurial 存储库的第一个修订版。这显然具有丢失所有历史的效果。
后来,当我对 Mercurial 有了更好的习惯时,我意识到有一个“转换扩展”之类的东西,它允许您将 SVN 存储库转换为 Mercurial 存储库。现在我想做的是转换旧的 SVN 存储库,然后将当前存在的 Mercurial 存储库中的所有更改集导入到这个转换后的存储库中,除了对 Mercurial 的第一次提交。
我已将 SVN 存储库转换为本地 Mercurial 存储库,但现在我遇到了困难。我想我可以使用转换扩展将当前的 Mercurial 存储库带入转换后的存储库,并使用拼接图删除第一个提交,但我似乎无法让它工作。
我还尝试仅使用不使用拼接图的转换将当前 Mercurial 存储库中的所有更改集转换为转换后的更改集,并将当前的第二个版本重新设置为旧 SVN 存储库的最后一次提交,但我无法得到那也可以工作。
为了更清楚地说明这一点,假设我有这两个存储库:
A: revA1-revA2
B: revB1-revB2-revB3 (Where revB1 is actually a copy of revA2)
现在我想将这两个组合到包含以下内容的新存储库中:
C: revA1-revA2-revB2-revB3