7614975487eca68df1830558203e80a691389d58
[git-central.git] / server / pre-receive-ticket
1 #!/bin/sh
2
3 while read oldrev newrev refname ; do
4         if expr "$oldrev" : '0*$' >/dev/null
5         then
6                 git rev-parse --not --branches | grep -v $(git rev-parse $refname) | git rev-list --stdin $newrev
7         else
8                 git rev-parse --not --branches | grep -v $(git rev-parse $refname) | git rev-list --stdin $oldrev..$newrev
9         fi | while read commit ; do
10                 git log -n 1 '--pretty=format:%s%n%b' "$commit" | grep -i '\(\(re\|refs\|qa\) #[0-9]\+\)\|\(no ticket\)' > /dev/null
11                 if [ $? -ne 0 ]
12                 then
13                         echo "Commit $commit does not reference a ticket"
14                         exit 1
15                 fi
16         done
17 done
18