受信後に単体テストを実行しますが、ユーザーを待たせたくありません。
git-user メーリング リストからの提案を試してみましたが (「&
それだけ」)、うまくいきません: https://groups.google.com/forum/#!topic/git-users/CFshrDgYYzE
これをhooks/post-receiveに入れただけでも、gitはbashスクリプトが終了するのを待っているようです:
exec-unit-tests.sh &
受信後に単体テストを実行しますが、ユーザーを待たせたくありません。
git-user メーリング リストからの提案を試してみましたが (「&
それだけ」)、うまくいきません: https://groups.google.com/forum/#!topic/git-users/CFshrDgYYzE
これをhooks/post-receiveに入れただけでも、gitはbashスクリプトが終了するのを待っているようです:
exec-unit-tests.sh &
これは私にとってはうまくいきました。&
stdout と stderr パイプを閉じる必要があります。
long-running-command >&- 2>&- &
コマンドをバックグラウンドで実行するには、両方のstdout
ANDstderr
を閉じる必要があります。それらのいずれかを開いたままにしておくと、プロセスはバックグラウンドにならず、フック スクリプトが終了するまでコミット操作は完了しません。
怠惰な代替アプローチは、単純にリダイレクトstdout
しstderr
て次のようにすること/dev/null
です。
long-running-command >/dev/null 2>&1 &
これは少しきれいではありませんが、おそらく理解しやすく覚えやすく、同じ効果があります。