バージョン管理リポジトリを複製する最良の方法は何ですか?
-
08-06-2019 - |
質問
これが私が持っているシナリオです。ある場所 (A) に CVS リポジトリがあり、それを複製して、別の場所 (B) のリポジトリと同期させたいと考えています。これは、A から B への単一方向の同期になります。これを行うための最良の方法は何ですか?CVS では実際には実現不可能な場合、これを実現するにはどのソース コード管理システムをお勧めしますか?ありがとう
解決
CVS を使用する場合、ファイルの同期以外にそれを行うためのツールがわかりません。次のようなツールを使用してそれを実現できます rsync
(Unix) または xcopy
/robocopy
(ウィンドウズ)。
Subversion への移行を計画している場合は、別のリポジトリからリポジトリを同期できる svnsync というツールが提供されます。
他のヒント
CVS から次のような適切な分散バージョン管理システムに移行することをお勧めします。 ギット, 、この種の機能が非常に自然に提供されます。
Subversion も同様のことを行う svnsync を提供します。
CVS で rsync/filecopy アプローチを採用する場合は、アクティブなコミットがないときにのみファイルを同期することが重要です。そうしないと、リポジトリのロック ファイルがコピーされ、次の同期までターゲット側でチェックアウト/更新できなくなります。
この理由だけでも、CVS の選択は間違っている可能性があります。CVS から Subversion への移行パスは非常にスムーズで、履歴付きの完全な CVS リポジトリを Subversion にインポートするツールがあります。
真の分散バージョニングを実現したい場合は、Git または Mercurial を検討してください。しかし、それは「読み取り専用」のニーズに対して過剰であるように思えます。
最良の(そしておそらく最もコストのかかる)方法は、 クリアケースマルチサイト
しかし、オープンソースを探しているのであれば、 ギット あらゆる場所で svn が急速に置き換えられつつあります。