少し前に、SVN リポジトリを Mercurial リポジトリに変換しました。適切に変換されたようで、すでにプロジェクトに多くの変更をコミットしています。しばらくして(履歴を掘り下げたときに)、変換が適切に行われていないことに気付きました-つまり、古いコミットは時間順にソートされていなかったため、SVNリポジトリからのすべてのリビジョンを持っていますが、適切な順序ではありません(そして変換後にコミットを行ったこと)。
これを修正したいと思います。これを修正する唯一の方法は、リポジトリを 2 つに分割することです
- 古い SVN リポジトリから変換されたリビジョンを含むもの ( と呼びましょう
A1
) - そして、新しいコミットのみを含むもの (それを と呼びましょう
B1
)
SVN リポジトリをもう一度 (今回は適切に) 変換し、リポジトリが最初に変換されてから行ったすべての変更を再適用したいと思います (B1
一部)。
すべてを要約すると、私がしなければならないこと (または、私がしなければならないと思うこと) は次のとおりです。
既存のレポを 2 つに分割します。1 つは SVN リポジトリから変換して作成されたもの (
A1
) で、もう 1 つは適切なコミットを含むものです (リポジトリの変換後に私が作成したものです -B1
)。SVN リポジトリを Mercurial (または、何らかの理由で Mercurial で他のすべての手順を実行できない場合は Git) に変換します。したがって、変換後は
A2
.B1
ポイント2からの変更を新しく変換されたリポジトリに適用します-A2
適切に順序付けされたコミット ( ) を取得するための変換 (ポイント 2) の方法を知っていると思いますA2
。A1
1. (既存のリポジトリを&に分割) & 3 ( からへB1
のコミットを適用)の助けが必要です。B1
A2
それはMercurialで実行できますか?Mercurial で実行できない場合 - Git を使用して達成することは可能ですか (私が知る限り、SVN と Mercurial リポジトリを Git リポジトリに簡単に変換できます)。