Re: [ANNOUNCE] Git 1.7.6.4
- From
BJ Hargrave <bj@bjhargrave.com>
- Date
- Sep 24, 2011, 03:33 UTC
- Message-ID
- <4850EB43-5CC7-4D33-90A8-1EDEE16ECAB7@bjhargrave.com>
- In-Reply-To
- <7vlitesucu.fsf@alter.siamese.dyndns.org>
On Sep 23, 2011, at 19:37 , Junio C Hamano wrote:
> * "git check-ref-format --print" used to parrot a candidate string that > began with a slash (e.g. /refs/heads/master) without stripping it, to make > the result a suitably normalized string the caller can append to "$GIT_DIR/".
When building 1.7.6.4 on my RHEL 4 system, it failed t1402-check-ref-format.sh:
not ok - 19 ref name 'heads/foo' is not valid
I bisected and found that commit f3738c1ce9193a4bf45ba1a3ea67d0cf32da0257 introduced the issue.
The test
invalid_ref "$(printf 'heads/foo\177')"
was added to t1402-check-ref-format.sh. However sh on my RHEL 4 system does not handle the DEL (\177) character well in double quoted strings.
sh-3.00$ echo $(printf 'hello\177') | hexdump -C 00000000 68 65 6c 6c 6f 7f 0a |hello..| 00000007 sh-3.00$ echo "$(printf 'hello\177')" | hexdump -C 00000000 68 65 6c 6c 6f 0a |hello.| 00000006
The double quotes cause the DEL (\177) character to be discarded.
Can this test be rewritten to avoid this apparent bug in sh on RHEL 4?
-- BJ Hargrave