diff options
author | Junio C Hamano <gitster@pobox.com> | 2008-02-07 00:02:08 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-02-07 00:04:50 -0800 |
commit | cf94ccda356cc732a883f16342440330d3f644ec (patch) | |
tree | 0cd15fe01a50aded4e68ce762909f419902b1cb1 /t/t0003-attributes.sh | |
parent | a0cf49c16ae37177dcfcefa1149bf09f84721cf5 (diff) | |
download | git-cf94ccda356cc732a883f16342440330d3f644ec.tar.gz git-cf94ccda356cc732a883f16342440330d3f644ec.tar.xz |
gitattributes: fix relative path matching
There was an embarrassing pair of off-by-one miscounting that
failed to match path "a/b/c" when "a/.gitattributes" tried to
name it with relative path "b/c".
This fixes it.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t0003-attributes.sh')
-rwxr-xr-x | t/t0003-attributes.sh | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/t/t0003-attributes.sh b/t/t0003-attributes.sh new file mode 100755 index 000000000..47f08a46c --- /dev/null +++ b/t/t0003-attributes.sh @@ -0,0 +1,49 @@ +#!/bin/sh + +test_description=gitattributes + +. ./test-lib.sh + +attr_check () { + + path="$1" + expect="$2" + + git check-attr test -- "$path" >actual && + echo "$path: test: $2" >expect && + diff -u expect actual + +} + + +test_expect_success 'setup' ' + + mkdir -p a/b/d a/c && + ( + echo "f test=f" + ) >.gitattributes && + ( + echo "g test=a/g" && + echo "b/g test=a/b/g" + ) >a/.gitattributes && + ( + echo "h test=a/b/h" && + echo "d/* test=a/b/d/*" + ) >a/b/.gitattributes + +' + +test_expect_success 'attribute test' ' + + attr_check f f && + attr_check a/f f && + attr_check a/c/f f && + attr_check a/g a/g && + attr_check a/b/g a/b/g && + attr_check b/g unspecified && + attr_check a/b/h a/b/h && + attr_check a/b/d/g "a/b/d/*" + +' + +test_done |