2011-09-01 18 views
6

を命令エコー有効Gitのフック:Gitのフックでエコーを有効にする方法がある

/var/git/repositories/project.git/hooks/post-update 

#!/bin/bash 
unset GIT_DIR; 
echo '========post-update hook=========' 

cd /var/project; 
git reset --hard; 
git checkout testing; 
git pull; 
chmod -R 774 ./lib 

update-apps 
別mashineに

所望のGitのプッシュ出力:

#git push 
... 
Writing objects: 100% (10/10), 5.98 KiB, done. 
Total 10 (delta 3), reused 8 (delta 1) 
========post-update hook========= 
cd /var/project 
git reset --hard 
git checkout testing 
git pull 
chmod -R 774 ./lib 
update-apps 

これはほんの一例、実際のコマンドチェインより複雑

なると私は標準出力をリダイレクトする必要があり、どこか

失敗する可能性がありますどういうわけかstderrに?

UPDATE

は、現在、私は通常のgit push出力を持ち、その後========post-update hook========= ...と何も

ああ! gitのバージョンは1.5.6.5

+1

しかし、試したときの実際の出力は? –

+1

フックが実行可能であることを確認する(chmod + x) – sehe

答えて

3

stdoutまたはstderrの出力はすべて転送する必要があります。 pre-receiveupdatepost-receivepost-updateフックのすべてで動作することが予想されます。コマンドのエコーは、bourneシェルのset -xで有効になります。 githooksマニュアルから

+0

set -x:問題が解決しました。ありがとう – jonny

2

標準出力と標準エラー出力の両方がもう一方の端に センドパックをgitのために転送され、あなたが ユーザーのために、単純にエコーメッセージをすることができますされています。

しかし、既知のGitリポジトリのいくつかの以前のバージョンでは問題とも出力が送信できなかったことにより、スマートHTTP、以前のバージョンがありました。あなたのgitのバージョンを更新してみてください。

関連する問題