2011-06-27 19 views
1

CVSをソースリポジトリとして使用しています。サーバーは現地の作業場所から離れており、非常に遅いです。リポジトリサイズも大きく(約2GB)、新しくチェックアウトするには約12時間かかります。gitをCVSのプロキシとして使用する方法

GITサーバーをCVSのプロキシとしてセットアップして、昼間にGITサーバーで作業し、夜間にCVSサーバーと同期させることができます。これには良い練習はありますか?

基本requrementsは以下のとおりです。GITとCVSの間

  1. 支店のサポート
  2. の同期は 双方向であるべきであり、異なるユーザによって をGITするためにコミットすることは CVSと1対1に同期する必要があります対応する ユーザー

ありがとうございます。 ご参考までに、このスレッドHow to export revision history from mercurial or git to cvs?を読んだことがありますが、あまり役に立ちません。

+1

CVSリポジトリの廃止はオプションではありませんか? "チェンジセット"という概念( 'git'の仕組みではなく、十分に近いもの)、ファイルの名前変更、およびマージトラッキングの概念を持つクライアントを使用すると、CVSにもう耐えたいとは思わないでしょう。 CVSがあなたに与えることができるよりも、少なくとも 'cvs2svn'は既存のCVSデータの中からSVNリポジトリを得ることができます。 – sarnold

+1

CVSを維持する必要がある理由は何ですか? –

+0

私たちはCVSリポジトリをSubversionに移行させ、SubversionからGitに移行しました。これは、履歴とブランチを保存する上で最良の結果をもたらしました。私たちはしばらくそれに取り組んでいましたが、それがあまりにも大きくなりすぎて(大量の旧い瓶や画像)役に立たなかったので、開発ブランチを整理して古いリポジトリを読み取り専用にしました。もう一度何かを見てください)。それは非常にきれいに働いています。 –

答えて

1

最後にCVSリポジトリが存在するgit repoを設定できます。すべての履歴をインポートする必要はありません。それは痛みに値するものではありません。リモートのgit repoとの間でプッシュしたりプルしたりすることができるはずです。次に、リモートのgitリポジトリからcvsのリポジトリにコミットします。これはgitが新しいファイルを出荷し、そのファイルを圧縮するのに素晴らしい仕事をするので、多くの送信遅延を避けるべきです。

最終的には、誰もが真の価値を与えるものとしてリモートのgit repoを見て、あなたはcvsのボールとチェーンを削除することができます。

これが役に立ちます。

+0

興味深いですね。支店運営が必要な場合はどうすればいいですか? –

+1

私はCVS界のリリース用のものを予約します。そのような活動をCVS側で開始することは賢明でしょう。 –

+0

私はこのソリューションが多くの手作業を必要としていることを認識しました。私はより多くの答えを待っています。 –

関連する問題