3

私は Git を使用してリポジトリを管理しています。このリポジトリには、別の場所からの CVS モジュールが含まれています。CVS リポジトリにローカルな変更を加えるつもりはありません。定期的に更新したいだけです。現在、Git の管理下にある CVS リポジトリですべてを作成し、その後cvs update、Git でコミットします。

CVS モジュールを簡単に更新できるようにしながら、Git リポジトリを追跡できる、より良い (より単純でクリーンな) 方法はありますか?

4

1 に答える 1

0

やりたいことは、git でサブモジュールを作成し、cvs exportを使用して cvs モジュールをこの git サブモジュールにエクスポートし、リポジトリにコミットすることです。これにより、追加の cvs ファイルが master ブランチからクリーンに保たれます。

それが完了したら、コミットがあるときにサブモジュールを最新の状態に保つためにコミットスクリプトで cvs を使用します - これは私の好みのオプションです。疑似コードでは、次のようになります。

#!/bin/sh

mv -R <submodule>/.git /tmp/
rm -rf <submodule>/*
mv -R  /tmp/.git <submodule>/
cd <submodule>

cvs -d<path> export <module>

find . | xargs git add

git commit -a -m "CVS Updates for `date`"

スクリプトを CVS に追加します。

  • スクリプトを実行可能にすることを忘れずに、CVSROOT のチェックアウトから始めて、そこにスクリプトをコピーします。cvs -d<path> co CVSROOT
  • スクリプトをディレクトリにコピーします
  • スクリプトを追加しますcvs add
  • スクリプトのファイル名を追加しますcheckoutlist
  • loginfoスクリプトを実行するエントリを追加します。
  • 専念
于 2013-01-06T20:58:51.717 に答える