コードベースのほとんどをモノリシックsvn
リポジトリから一連のgit
リポジトリに移動しました。さまざまな理由から、一部の作業 (フィールドに展開されたプロジェクトの古いバージョンで) は、古いブランチに移動してから削除したsvn
後、古いブランチで続行する必要があります。git
trunk
ブランチでこのような作業を行い、次のようにしてリポジトリからリポジトリにsvn
変更を再適用しました。svn
git
cd <common_svn_commit_root>
svn diff -r 12344:12345 > ~/r12345.diff
gedit ~/r12345.diff
cd <common_git_commit_root>
git apply ~/r12345.diff
svn
しかし、コミットごとにこれを行うのはかなり面倒です。特に、gedit
手動でsvn
パスをgit
パスに変更する必要があるステップ (通常は、最上位のディレクトリ名をプレフィックスとして付けます)。
これまでに提示されたオプションのいくつかを試す際の問題の 1 つは、古いsvn
リポジトリと新しいgit
リポジトリの構造が異なることです。これが、パッチ ファイルを編集しなければならない理由の 1 つです。
古いディレクトリ構造は
svn
configurations
blah
mine
blam
plugins
foo
core
mine
bar
一方、新しい構造は
svn
plugins
bar
git
my_git
my_config
plugins
mine
core_git
plugins
core
foo_git
plugins
foo
これを行うためのより簡単な方法があるかどうかを知り、この状況でのベスト プラクティスが何であるかを理解したいと思います。