2014-12-05 3 views
3

서버 측에서 수신 후크를 수행하려고하는데, 이는 각 커밋마다 한 번씩 실행됩니다.Git post-receive hook loop (모든 커밋)

나는 루프가 :

while read oldrev newrev refname 
do 
    python /local/Git/util.py $newrev $oldrev $refname 
done 

을하지만이 해당이 푸시에 주어진 커밋 마지막을 위해 스크립트를 실행합니다.

한 번에 서버에 푸시 된 모든 커밋에 대해 스크립트를 실행할 수있는 방법은 무엇입니까?

답변

4

스크립트에서 범위 내 커밋의 SHA-1을 얻으려면 git rev-list을 사용하십시오. 이 경우 git rev-list $oldrev..$newrev의 출력을 반복해야합니다. 이렇게 :

git rev-list $oldrev..$newrev | while read rev ; do 
    python /local/Git/util.py $rev $oldrev $refname 
done 
+1

간단하고 똑똑! 고마워요. 당신이 산타에서 선물의 톤을 얻을 수 있기를 바랍니다! – Sarpens