gitをCVSリポジトリとインターフェイスするためのベストプラクティスとヒントは何ですか?CVSでgitを使用するためのベストプラクティス
答えて
私は同様の質問hereの回答を書いています。
これは、中央のCVSリポジトリに変更を続けることを余儀なくされているときにはうまくいきます。
私はGit-CVSのやりとりでGitのデモを行ってきましたが、とても簡単でした。
- 現在のコピー
cvsps
をインストールする必要があります。Git cvsimport
は、これを使用してCVS履歴にアクセスします。$ rsync rsync://yourprojecthost.com/cvsroot/yourproject/* $ mkdir myproject.git $ cd myproject.git $ git cvsimport -p -x -v -d :local:/path/to/cvsroot/yourproject
私たちは、大規模なプロジェクトのために、initalセットアップがコンピュータにCVSのレポの完全なコピーを取って、そしてローカルgit cvsimport
を行うことによってずっと速かった、ことがわかりました
-pの後に-xが非常に重要であることに注意してください。これは-xをcvspsに渡します。詳細は、cvsps man pageを参照してください。
私は間違っていると思います/ 3段階です。 –
@PeterBurns:それは... 'git cvsimport -p -x -v -d:local:/ path/to/cvsroot yourproject' – Archenoth
ややメタアミス。 git 'ゲリラスタイル'を強制的に使用する場合、つまり、あなたの会社がバージョンコントロールのためにcvsを使用していて、あなたのワークステーションでgitを使用して簡単に作業できるようにする場合は、
CVS=realCvsPath
# commit to the git first
if ($ARGV[0] && $ARGV[0] eq "commit")
{
system 'git commit -a';
}
# execute the appropriate cvs program
# ===================================
exec "$CVS", @ARGV
このファイル 'cvs'を呼び出し、実際のCVSコマンドの前のパスを含めます。そうしないと、
(これを行うための他のツールもあります)ので、あなたは以前のすべてのリビジョン情報を放棄するように促しますか?それはひどい解決策です。 –
それについて何が恐ろしいですか?私の変更をCVSに戻す場合、改訂履歴は「投げ捨て」されていません。そして私がリビジョン履歴を見たいのであれば、CVSコマンドを使っていつでもそれを行うことができます。 –
gitにコミットするのではなく、 '.gitignore'に' CVS'を追加するとどんなメリットがありますか? gitリポジトリが不完全になっていませんか?私が意味することは、http://stackoverflow.com/a/37585092/1122270とhttp://stackoverflow.com/q/37585385/1122270を参照してください。 – cnst
上流である場合はCVSで100%(例えば、OpenBSDの内容を書いた... Gitはその有用ではありませんCVSのもの、より古いコミットすることができ、またはそのサブプロジェクトの多くがmdocmlまたはports-readmesのように)、特にOpenBSD CVSツリーほど錆びている(例えば、時には履歴の書き換えがあっても)場合は、CVS/{Entries,Repository,Root}
ファイルを直接git
に直接コミットするのが非常に便利です。リポジトリ。
これはgitのレスメンテナに郵送のための正しいCVSパッチを生成するために、複数の独立したワークスペースを持っている必要が任意のマシン上でgit
をチェックアウトすることを可能にして、代わりにcvs up
、またはcvs diff
ないように、それは非常に簡単になります上流の。
私はSourceSafeについて同じ質問をするように誘惑されますが、私は本当に(完全にオンターゲットの)嘲りを乗り切りたくありません。 –