私のプロジェクトFakeItEasyの VCS をGoogle Code で SVN から Mercurial に変更するとき、私は少し熱心すぎました (私はそのように面白いです)。私がしたことは、SVN から最新バージョンをチェックアウトし、そのチェックアウトを新しい Mercurial リポジトリの最初のリビジョンとしてコミットすることでした。これは明らかに、すべての履歴が失われるという効果があります。
後で Mercurial に少し慣れてきたとき、SVN リポジトリを Mercurial リポジトリに変換できる「変換拡張機能」のようなものがあることに気付きました。ここでやりたいことは、古い SVN リポジトリを変換し、Mercurialへの最初のコミットを除いて、現在既存の Mercurial リポジトリからすべての変更セットをこの変換されたリポジトリにインポートすることです。
SVN リポジトリをローカルの Mercurial リポジトリに変換しましたが、今は行き詰まっています。convert 拡張機能を使用して、現在の Mercurial リポジトリを変換されたリポジトリに移動し、スプライス マップを使用して最初のコミットを削除できると思っていましたが、これを機能させることはできません。
また、スプライス マップなしで変換を使用して、現在の Mercurial リポジトリから変換されたものにすべての変更セットを取得し、現在の 2 番目のバージョンを古い SVN リポジトリからの最後のコミットにリベースしようとしましたが、取得できませんどちらかが機能すること。
これを明確にするために、次の 2 つのリポジトリがあるとします。
A: revA1-revA2
B: revB1-revB2-revB3 (Where revB1 is actually a copy of revA2)
次に、これら 2 つを組み合わせて、これを含む新しいリポジトリにします。
C: revA1-revA2-revB2-revB3