コミットに関するメタ情報を外部データベースに保存します。クローンまたはチェックアウト中に、このデータベースを参照する必要があり、複製されたリポジトリ内のファイルにメタ情報をコピーします。単にファイルを使用するのではなく、データベースが必要です。これは、インデックス作成や検索などのためです...
クローンフックがあればこれをトリガーできると思いました。 .git/hooksのサンプルにクローンフックが見つかりませんでした。ありますか?チェックアウト後フックはクライアント側で唯一の可能性ですか?
これを行う1つの方法は、clone --template
オプションを使用することです。
クライアント側フックが--template
スイッチの値として格納される場所を指定します。フックがクローンにコピーされ、チェックアウト後のフックがすぐに実行されます!
リモートリポジトリをcloneすると、フックは作業コピーに対してローカルであり、作成するため、クライアント側のフックを実行できません。ゼロから。リモートリポジトリから新しい変更をpullすると、ローカルのpost-merge
フックが存在する場合、それが実行されます。
pull操作の結果として、サーバー上では何も実行されません。 Push操作は、サーバーのupdate
およびpost-update
フックをトリガーします。
詳細は Git Book を参照してください。
いいえ、クローンフックはありません。
私は遅れていますが、回避策があります:
git clone
の実行をキャプチャし、trap set_var_on_git_clone DEBUG
を使用して変数を設定します。ここで、set_var_on_git_clone
はユーザー定義関数です。 (例 https://Gist.github.com/KeyAmam/a6afcabc3a724fc4a541aca7629c3ff6 )
post-checkout
スクリプトの変数を確認し、ケースでいくつかのことを行います。スクリプトの最後で変数をクリアします。 (例 https://Gist.github.com/KeyAmam/6a0e8805c0b6a662adb6bcf8118a089a )
これはBashでのみ機能しますが、他のシェルでも同様のことができます。