まあ、リモートSVN リポジトリgit svnの git バックエンドです。双方向のプロキシと見なすことができます。内部的に SVN コマンドをエミュレートし、ユーザーが特定の SVN リポジトリを GIT リポジトリであるかのように使用できるようにします。世界の他の地域では、ユーザーはまだ SVN を使用しています。この場合、GIT は SVN の便利なラッパーとして使用されます。
したがって、SVN リポジトリからのすべてのコミットの個人用ミラー (オプションでいくつかのコミットを選択した場合、またはいくつかのブランチを選択した場合は、その一部) をフォルダーgit-svnに取得します。コマンドを使用してインポートされたコミットのセット全体を検査し、選択したコミットをチェックアウトするか、gitk でコミットを RMB クリックして適切なメニュー項目を選択します。.git-rgitk --allgit checkout
ここで、最初に変更をローカルにコミットし (通常の GIT リポジトリで行うのと同じように)、変更を SVN リポジトリにプッシュして戻す必要がありますgit svn dcommit。SVN リポジトリへのプッシュ中に、コミットは通常の SVN クライアントによって行われたかのように「再生」されます。通常の SVN コミットと同様に、競合やその他の問題が発生する可能性があります。およびこのページで説明されているその他のコマンドを使用してgit svn fetch、変更を更新されたツリーにリベースし、競合を解決します。git svn rebasegit svn --help
一方svn2git、既存のローカル SVN リポジトリ (つまり、SVN コミット データベースのコンテンツ) をローカル GIT リポジトリに変換する方法があります。通常、このステップは、チームまたは会社全体が SVN から GIT に完全に移行することを決定したときに 1 回実行されます。変換後は、実際に GIT のすべての利点を得ることができます (複雑な分岐とマージ、コード レビュー用の GIT 固有のシステムの拡張* など)。
- 確かに、コード レビュー用の SVN ベースまたは SCM ニュートラル システムがあります。ただし、このようなシステムは通常、順序付けられた一連の変更ではなく、一度に 1 つの特定のパッチで動作します。どちらのアプローチにも長所と短所がありますが、私は個人的には変更シーケンスを使用する方法を好みます。