これが私が持っているシナリオです。ある場所 (A) に cvs リポジトリがあり、それを複製して別の場所 (B) のリポジトリと同期させたいと考えています。これは、A から B への一方向の同期になります。これを行う最善の方法は何ですか? CVS で実現できない場合、これを実現するためにどのソース コード管理システムを推奨しますか? ありがとう
4 に答える
CVS を使用する場合、ファイルの同期以外にそれを行うためのツールを知りません。rsync
(Unix) やxcopy
/ robocopy
(Windows)などのツールを使用してそれを実現できます。
Subversion への移行を計画している場合は、リポジトリを別のリポジトリから同期できる svnsync というツールが提供されます。
CVSでrsync/filecopyアプローチを採用する場合は、アクティブなコミットがないときにのみファイルを同期することが重要です。そうしないと、リポジトリのロックファイルがコピーされ、次の同期までターゲット側でチェックアウト/更新できなくなります。
この理由だけでも、CVSは悪い選択になる可能性があります。CVSからSubversionへの移行パスは非常にスムーズで、履歴を含む完全なCVSリポジトリをSubversionにインポートするためのツールがあります。
真の分散バージョン管理を開始したい場合は、GitまたはMercurialを検討してください。ただし、「読み取り専用」のニーズにはそれではやり過ぎのようです。
CVS から、この種の機能を非常に自然に提供するgitなどの適切な分散バージョン管理システムに移行することをお勧めします。
Subversion は、同じようなことを行う svnsync も提供します。
最良の(そしておそらく最もコストのかかる)方法はClearcaseMultisiteです
しかし、オープンソースを探しているなら、Gitはどこでもsvnを急速に置き換えています。