diff.c: emit_add_line() takes only the rest of the line
[gitweb.git] / t / t0003-attributes.sh
index 47f08a46c260a612eff2bcf88bef84ee231897c1..3d8e06a20fade230136d50736a2f621d3c96002c 100755 (executable)
@@ -11,7 +11,7 @@ attr_check () {
 
        git check-attr test -- "$path" >actual &&
        echo "$path: test: $2" >expect &&
-       diff -u expect actual
+       test_cmp expect actual
 
 }
 
@@ -21,6 +21,7 @@ test_expect_success 'setup' '
        mkdir -p a/b/d a/c &&
        (
                echo "f test=f"
+               echo "a/i test=a/i"
        ) >.gitattributes &&
        (
                echo "g test=a/g" &&
@@ -46,4 +47,46 @@ test_expect_success 'attribute test' '
 
 '
 
+test_expect_success 'root subdir attribute test' '
+
+       attr_check a/i a/i &&
+       attr_check subdir/a/i unspecified
+
+'
+
+test_expect_success 'setup bare' '
+
+       git clone --bare . bare.git &&
+       cd bare.git
+
+'
+
+test_expect_success 'bare repository: check that .gitattribute is ignored' '
+
+       (
+               echo "f test=f"
+               echo "a/i test=a/i"
+       ) >.gitattributes &&
+       attr_check f unspecified &&
+       attr_check a/f unspecified &&
+       attr_check a/c/f unspecified &&
+       attr_check a/i unspecified &&
+       attr_check subdir/a/i unspecified
+
+'
+
+test_expect_success 'bare repository: test info/attributes' '
+
+       (
+               echo "f test=f"
+               echo "a/i test=a/i"
+       ) >info/attributes &&
+       attr_check f f &&
+       attr_check a/f f &&
+       attr_check a/c/f f &&
+       attr_check a/i a/i &&
+       attr_check subdir/a/i unspecified
+
+'
+
 test_done