マルチサイトシナリオでCVSのパフォーマンスを改善するにはどうすればよいですか?
-
02-07-2019 - |
質問
現在、3つのサイトで作業している開発者とのプロジェクトに取り組んでいます。サイトの1つはインドのデリーにあり、他の2つはヨーロッパにあります。ヨーロッパのオフィスとデリーのオフィスの間の通信は、帯域幅が低く、待ち時間が非常に遅く、そこからのCVS更新には、ごく少数のファイルしか変更されていなくても5〜10分かかります。
優れたCVSプロキシはありますか?または、個別のCVSサーバーを同期させる適切な方法はありますか?このシナリオでパフォーマンスを改善する方法に関する他のヒントはありますか?
残念ながら、このプロジェクトの範囲内ではCVSにこだわるので、短期的にはまったく異なるものに切り替えることは選択肢ではありません。
解決
オプションを切り替えないのはなぜですか?
代わりにSVNまたはgitに切り替えることを強くお勧めします。そして、この変換はできるだけ早く...今日のように:)
svnツール/ガイドもあります。 および gitツール/ガイドこのCVS変換を行ってくれます。
私は個人的にSVNを仕事に使用していますが、上記の説明から判断すると、gitがより良い選択肢のように思えます。
他のヒント
これは、帯域幅と信頼性の低いネットワークが問題であった同じような状況で、私がずっと前にやったことです:
- リポジトリのコピーを作成し、リモートの場所にインストールします。 CVS1とCVS2があります。
- コミットを防止することにより、2つのコピーの1つ(CVS1)をロックします。これは、CVSROOTモジュールの「commitinfo」を変更することで実現します。
- CVS1は更新のみに使用できます
- CVS2は更新とコミットに使用できます
コピー1のコミットでアクセスを許可する場合は、次の手順に従います。
- CVS2をロック
- CVS2をCVS1にコピー
- CVS1のロックを解除
これは面倒に聞こえますが、手動で行う場合はそうですが、動作します。手動で行う場合は、少し規律が必要です。タイムゾーンがあなたの側に一度あるかもしれません。
コミットトークンの所有者を追跡し、rsyncとSSHを介してリポジトリをあるサイトから別のサイトに自動的に転送するツールを作成しました。数年はうまくいきました。データを失うことはなく、トークンをある場所から別の場所に転送するのに約5分かかりました。
転送ツールはperlで作成されており、開発に約2週間かかり、フルタイムで作業していました。
昔、FreeBSD開発者は CVSup を使用していましたが、私はそのツールを自分で使用したことはありません。