Re: Server-side preventing some files from being overwritten

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]