| #!/bin/sh | |
| . git-sh-setup | |
| # Avoid duplicated test numbers --- checking 'seen' is enough | |
| # as we will usually add, but never remove them. | |
| added=$( | |
| git diff-index --cached --name-only --diff-filter=A HEAD -- t | | |
| sed -ne 's|t/\(t[0-9][0-9][0-9][0-9]\)-.*\.sh$|\1|p' | |
| ) | |
| if test -n "$added" | |
| then | |
| bad= | |
| exists=$( | |
| git ls-tree --name-only seen:t | | |
| sed -ne 's|^\(t[0-9][0-9][0-9][0-9]\)-.*\.sh$|\1|p' | | |
| tr "\012" " " | |
| ) | |
| for a in $added | |
| do | |
| case " $exists " in | |
| *" $a "*) | |
| echo >&2 "Test number $a already taken" | |
| bad=1 | |
| ;; | |
| esac | |
| done | |
| if test -n "$bad" | |
| then | |
| : exit 1 | |
| fi | |
| fi |