git check-attr test -- "$path" >actual &&
        echo "$path: test: $2" >expect &&
-       diff -u expect actual
+       test_cmp expect actual
 
 }
 
        mkdir -p a/b/d a/c &&
        (
                echo "f test=f"
+               echo "a/i test=a/i"
        ) >.gitattributes &&
        (
                echo "g test=a/g" &&
 
 '
 
+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