2011-09-09 15 views
0

私は別のディレクトリに私の「ベンダー/資産」ディレクトリ内のサブモジュールにいくつかのファイルをコピーしたい - 「公開/資産」私は更新フックについて聞いたが、サブモジュールのために動作するかどうかはわからない。私はシンプルなフックを書いてコマンドラインから更新を走らせましたが、うまくいかなかった。gitサブモジュールの更新フックを書き込む方法は?

マイupdateフックは、次のようになります。

#.git/gooks/update.rb 

#!/usr/bin/env ruby 

puts "Copying files..." 

だから、これはさえ可能ですか?

btw、私はブレードを使用してサブモジュールを管理しています。

答えて

1

updateフックは、誰かがあなたが望むような音はありません。現在のリポジトリ、に押し込まれただけで実行されます。リポジトリにコミットを作成するたびにこれらのファイルをコピーする場合は、post-commitフックを使用できます。 (それはサブモジュールがあるコミットを変更したときに、メインプロジェクトのサブモジュールの新しいバージョンをコミットする必要があるため、十分であるはずです。これはpublic/assetsのファイルを更新する自然なポイントです。あなたは間違った名前を持っているので、単純にすることができることを - )

あなたのテストフックが実行されていないことを言います。更新フックは、.git/hooks/update(n.b.には.rbの接尾辞が付いていない)という実行可能ファイルでなければなりません。同様に、コミット後のフックは.git/hooks/post-commitでなければなりません。

フックが服用されるアクションがメインプロジェクトに固有のものですので、あなたは、このタスクのいずれかの特定のサブモジュールでフックを作成しないでください。そのため、サブモジュールの新しいバージョンをコミットしたり、ランダムファイルを更新するだけで、あなたが気にしている変更が本当に問題になるかどうかは実際問題ではありません。

書き込みフックの場合は、official githooksのドキュメントが便利であり、おそらくこれらはadditional tipsです。私が見

+0

。しかし、使用するのに最適なフックは事前コミットではないでしょうか?そうすれば、コピーされたファイルもコミットに含まれます。 – picardo

+0

ああ、私はこれらのファイルが追跡不能になると思っていました。私はあなたが 'pre-commit'フックで追加のファイルをステージできるかどうか分かりませんが、恐れますが、テストするのは簡単です... –

+0

' git add ' 'pre-commit'フックでは、コミットメッセージの役に立つコメントアウトされた部分には表示されません。 –