Hi, With bash-3.0 (NOTE: CentOS 4's /bin/sh is actually a symlink to bash 3.0), t/t1402-check-ref-format.sh failed. Here is output. % ~/bash-3.0.16/bin/bash --version GNU bash, version 3.00.16(2)-release (x86_64-unknown-linux-gnu) Copyright (C) 2004 Free Software Foundation, Inc. % cd ~/git/t % ~/bash-3.0.16/bin/bash t1402-check-ref-format.sh ok 1 - ref name '' is invalid ok 2 - ref name '/' is invalid ok 3 - ref name '/' is invalid with options --allow-onelevel ok 4 - ref name '/' is invalid with options --normalize ok 5 - ref name '/' is invalid with options --allow-onelevel --normalize ok 6 - ref name 'foo/bar/baz' is valid ok 7 - ref name 'foo/bar/baz' is valid with options --normalize ok 8 - ref name 'refs///heads/foo' is invalid ok 9 - ref name 'refs///heads/foo' is valid with options --normalize ok 10 - ref name 'heads/foo/' is invalid ok 11 - ref name '/heads/foo' is invalid ok 12 - ref name '/heads/foo' is valid with options --normalize ok 13 - ref name '///heads/foo' is invalid ok 14 - ref name '///heads/foo' is valid with options --normalize ok 15 - ref name './foo' is invalid ok 16 - ref name './foo/bar' is invalid ok 17 - ref name 'foo/./bar' is invalid ok 18 - ref name 'foo/bar/.' is invalid ok 19 - ref name '.refs/foo' is invalid ok 20 - ref name 'heads/foo..bar' is invalid ok 21 - ref name 'heads/foo?bar' is invalid ok 22 - ref name 'foo./bar' is valid ok 23 - ref name 'heads/foo.lock' is invalid ok 24 - ref name 'heads///foo.lock' is invalid ok 25 - ref name 'foo.lock/bar' is invalid ok 26 - ref name 'foo.lock///bar' is invalid ok 27 - ref name 'heads/foo@bar' is valid ok 28 - ref name 'heads/v@{ation' is invalid ok 29 - ref name 'heads/foo\bar' is invalid ok 30 - ref name 'heads/foo ' is invalid not ok 31 - ref name 'heads/foo' is invalid # # test_must_fail git check-ref-format 'heads/foo' # ok 32 - ref name 'heads/fuß' is valid ok 33 - ref name 'heads/*foo/bar' is invalid with options --refspec-pattern ok 34 - ref name 'heads/foo*/bar' is invalid with options --refspec-pattern ok 35 - ref name 'heads/f*o/bar' is invalid with options --refspec-pattern ok 36 - ref name 'foo' is invalid ok 37 - ref name 'foo' is valid with options --allow-onelevel ok 38 - ref name 'foo' is invalid with options --refspec-pattern ok 39 - ref name 'foo' is valid with options --refspec-pattern --allow-onelevel ok 40 - ref name 'foo' is invalid with options --normalize ok 41 - ref name 'foo' is valid with options --allow-onelevel --normalize ok 42 - ref name 'foo/bar' is valid ok 43 - ref name 'foo/bar' is valid with options --allow-onelevel ok 44 - ref name 'foo/bar' is valid with options --refspec-pattern ok 45 - ref name 'foo/bar' is valid with options --refspec-pattern --allow-onelevel ok 46 - ref name 'foo/bar' is valid with options --normalize ok 47 - ref name 'foo/*' is invalid ok 48 - ref name 'foo/*' is invalid with options --allow-onelevel ok 49 - ref name 'foo/*' is valid with options --refspec-pattern ok 50 - ref name 'foo/*' is valid with options --refspec-pattern --allow-onelevel ok 51 - ref name '*/foo' is invalid ok 52 - ref name '*/foo' is invalid with options --allow-onelevel ok 53 - ref name '*/foo' is valid with options --refspec-pattern ok 54 - ref name '*/foo' is valid with options --refspec-pattern --allow-onelevel ok 55 - ref name '*/foo' is invalid with options --normalize ok 56 - ref name '*/foo' is valid with options --refspec-pattern --normalize ok 57 - ref name 'foo/*/bar' is invalid ok 58 - ref name 'foo/*/bar' is invalid with options --allow-onelevel ok 59 - ref name 'foo/*/bar' is valid with options --refspec-pattern ok 60 - ref name 'foo/*/bar' is valid with options --refspec-pattern --allow-onelevel ok 61 - ref name '*' is invalid ok 62 - ref name '*' is invalid with options --allow-onelevel ok 63 - ref name '*' is invalid with options --refspec-pattern ok 64 - ref name '*' is valid with options --refspec-pattern --allow-onelevel ok 65 - ref name 'foo/*/*' is invalid with options --refspec-pattern ok 66 - ref name 'foo/*/*' is invalid with options --refspec-pattern --allow-onelevel ok 67 - ref name '*/foo/*' is invalid with options --refspec-pattern ok 68 - ref name '*/foo/*' is invalid with options --refspec-pattern --allow-onelevel ok 69 - ref name '*/*/foo' is invalid with options --refspec-pattern ok 70 - ref name '*/*/foo' is invalid with options --refspec-pattern --allow-onelevel ok 71 - ref name '/foo' is invalid ok 72 - ref name '/foo' is invalid with options --allow-onelevel ok 73 - ref name '/foo' is invalid with options --refspec-pattern ok 74 - ref name '/foo' is invalid with options --refspec-pattern --allow-onelevel ok 75 - ref name '/foo' is invalid with options --normalize ok 76 - ref name '/foo' is valid with options --allow-onelevel --normalize ok 77 - ref name '/foo' is invalid with options --refspec-pattern --normalize ok 78 - ref name '/foo' is valid with options --refspec-pattern --allow-onelevel --normalize ok 79 - check-ref-format --branch @{-1} ok 80 - check-ref-format --branch from subdir ok 81 - ref name 'heads/foo' simplifies to 'heads/foo' ok 82 - ref name 'refs///heads/foo' simplifies to 'refs/heads/foo' ok 83 - ref name '/heads/foo' simplifies to 'heads/foo' ok 84 - ref name '///heads/foo' simplifies to 'heads/foo' ok 85 - check-ref-format --normalize rejects 'foo' ok 86 - check-ref-format --normalize rejects '/foo' ok 87 - check-ref-format --normalize rejects 'heads/foo/../bar' ok 88 - check-ref-format --normalize rejects 'heads/./foo' ok 89 - check-ref-format --normalize rejects 'heads\foo' ok 90 - check-ref-format --normalize rejects 'heads/foo.lock' ok 91 - check-ref-format --normalize rejects 'heads///foo.lock' ok 92 - check-ref-format --normalize rejects 'foo.lock/bar' ok 93 - check-ref-format --normalize rejects 'foo.lock///bar' # failed 1 among 93 test(s) 1..93 31st test is: invalid_ref "$(printf 'heads/foo\177')" I found that bash-3.0 ignores DEL character(\177=\x7f) in double quoted string. % cat test.sh echo $(printf 'heads/foo\177') | hexdump -C echo "$(printf 'heads/foo\177')" | hexdump -C % ~/bash-3.0.16/bin/bash test.sh 00000000 68 65 61 64 73 2f 66 6f 6f 7f 0a |heads/foo..| 0000000b 00000000 68 65 61 64 73 2f 66 6f 6f 0a |heads/foo.| 0000000a Thus 31st test is just equal to invalid_ref "heads/foo" and fails. Thanks -- Shoichi Kaji -- 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