会社で CVS から Git への移行を計画していますが、特定のエンジニアは、$Id: $
. ident設定を使用してこれを実装することについてすべて読んだことがありますが.gitattributes
、それが望ましくない理由を理解していますが、小さなソースツリーでは可能かもしれません。(うちのソースは膨大なので無理だと思います。)
当社のエンジニアは、ファイルに SHA1 ハッシュが含まれていることを特に気にしません。彼らは知りたいだけです:
- 最終変更日
- コミッターの名前
- おそらくコミットメッセージ
彼らは、コードを参照するときにファイル ヘッダーでこの情報を確認できると非常に便利だと考えており、私はそれについて議論することはできません。
私が知りたいのは:
git commit の前に、ステージングされたすべてのファイルに情報スタンプを付ける方法はありますか? $Id: $
つまり、コミットされているファイルの作業コピーに対して、必要な情報のブロックに置き換えられる perl コマンドを実行するには?
.gitattributes
これには、何のアクションも必要ありません。Git は、このような 2 つの情報ブロックをマージする方法を知っているだけでよく、理想的には後者を選択します。スタンプされた情報は、新しく作成されたバージョンでの 1 つのファイル変更にすぎません。
私は pre-commit フックでこれを行うことを見ましたが、意図が異なっているようです-ファイルを編集するためではなく、ファイルをチェックするためだけです。私はそれについて正しいですか?
そして、誰もこのアプローチを試していませんか? git がバージョンを変更するたびにすべてのソース ファイルをフィルタリングしようとするよりも簡単に思えます.gitattributes
。
アドバイス/警告/ポインターに感謝します。