1

私は現在、3 つのサイトで作業している開発者と一緒にプロジェクトに取り組んでいます。サイトの 1 つはインドのデリーにあり、他の 2 つはヨーロッパにあります。ヨーロッパのオフィスとデリーのオフィスの間の通信は、帯域幅が狭く、待ち時間が非常に長く、そこからの CVS の更新には、ほんの数ファイルしか変更されていない場合でも、5 ~ 10 分かかることがよくあります。

優れた CVS プロキシ、または個別の CVS サーバーを同期させる適切な方法はありますか? このシナリオでパフォーマンスを向上させる方法について、他に何かヒントはありますか?

残念ながら、このプロジェクトの期間中は CVS にとどまることになるため、短期的には完全に別のものに切り替えることはできません。

4

2 に答える 2

1

帯域幅と信頼性の低いネットワークが問題となった同様の状況で、私がずっと前に行ったことは次のとおりです。

  • リポジトリのコピーを作成し、リモートの場所にインストールします。あなたはCVS1とCVS2を持っていることを知っています。
  • コミットを防止して、2つのコピー(CVS1)の1つをロックします。これは、CVSROOTモジュールの「commitinfo」を変更することで実現されます。
  • CVS1は更新にのみ使用できます
  • CVS2は更新とコミットに使用できます

コピー1へのコミットでアクセスを許可する場合は、次の手順に従います。

  • CVS2をロックする
  • CVS2をCVS1にコピーします
  • CVS1のロックを解除する

これは面倒に聞こえます。手動で行う場合も同様ですが、機能します。手動で行う場合は、少し規律が必要です。タイムゾーンがあなたの側にあるかもしれません。

コミットトークンを持っている人を追跡し、rsyncとSSHを介してリポジトリをあるサイトから別のサイトに自動的に転送するツールを作成しました。それは数年間うまく機能しました。データが失われることはなく、トークンをある場所から別の場所に転送するのに約5分かかりました。

転送ツールはperlで書かれていて、フルタイムで作業して開発するのに約2週間かかりました。

私はずっと前にFreeBSD開発者がCVSupを使用したことを知っていますが、私はそのツールを自分で使用したことはありません。

于 2008-09-26T13:38:51.603 に答える
1

切り替えがオプションにならないのはなぜですか?

代わりに SVN または git に切り替えることを強くお勧めします。そして、この変換をできるだけ早く行うこと...今日のように:)

この CVS 変換を行うsvn ツール/ガイドgit ツール/ガイドさえあります。

私は個人的に仕事で SVN を愛用していますが、上記の説明に基づくと、git の方が適しているように思えます。

于 2008-09-26T08:23:49.733 に答える