Thorsten Glaser <t.glaser@xxxxxxxxx> writes: > Although I’m ordinarily loath to write GNU bash scripts, this > helps avoiding temporary files. This works: > > -----cutting here may damage your screen surface----- > #!/bin/bash > export LC_ALL=C > subdir=x/y > while IFS=' ' read -r old new name; do > test x"$name" = x"refs/heads/master" || continue > if test x"0" != x"$(comm -23z \ > <(git ls-tree -r -z "$old" "$subdir" | sort -z) \ > <(git ls-tree -r -z "$new" "$subdir" | sort -z) | wc -c)"; then > echo >&2 'Untouchable files touched, commit rejected!' > exit 1 > fi Can't this become simpler, e.g. if ! git diff-tree --quiet "$old" "$new" -- "$subdir" then echo >&2 "Ooh, $subdir is touched" exit 1 fi > done > exit 0 > -----cutting here may damage your screen surface----- > > Of course, set “subdir” in line 3 correctly, and GNU coreutils > are required for the NUL line termination, which is not an issue > here. (BSD has “-R ''” for sort(1), for example.) > > bye, > //mirabilos -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html