私は Git を使用してリポジトリを管理しています。このリポジトリには、別の場所からの CVS モジュールが含まれています。CVS リポジトリにローカルな変更を加えるつもりはありません。定期的に更新したいだけです。現在、Git の管理下にある CVS リポジトリですべてを作成し、その後cvs update
、Git でコミットします。
CVS モジュールを簡単に更新できるようにしながら、Git リポジトリを追跡できる、より良い (より単純でクリーンな) 方法はありますか?
やりたいことは、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 -d<path> co CVSROOT
cvs add
checkoutlist
loginfo
スクリプトを実行するエントリを追加します。