Code

Merge branch 'jk/maint-cleanup-after-exec-failure'
[git.git] / t / t7010-setup.sh
index da20ba514afb219fe044ead51f43d3c2ce0aac1e..d8a7c798525728ddc8fc5fa9bd8335d8d1f0a710 100755 (executable)
@@ -18,7 +18,7 @@ test_expect_success 'git add (absolute)' '
        git add "$D/a/b/c/d" &&
        git ls-files >current &&
        echo a/b/c/d >expect &&
-       diff -u expect current
+       test_cmp expect current
 
 '
 
@@ -32,7 +32,7 @@ test_expect_success 'git add (funny relative)' '
        ) &&
        git ls-files >current &&
        echo a/e/f >expect &&
-       diff -u expect current
+       test_cmp expect current
 
 '
 
@@ -43,7 +43,7 @@ test_expect_success 'git rm (absolute)' '
        git rm -f --cached "$D/a/b/c/d" &&
        git ls-files >current &&
        echo a/e/f >expect &&
-       diff -u expect current
+       test_cmp expect current
 
 '
 
@@ -57,7 +57,7 @@ test_expect_success 'git rm (funny relative)' '
        ) &&
        git ls-files >current &&
        echo a/b/c/d >expect &&
-       diff -u expect current
+       test_cmp expect current
 
 '
 
@@ -67,7 +67,7 @@ test_expect_success 'git ls-files (absolute)' '
        git add a &&
        git ls-files "$D/a/e/../b" >current &&
        echo a/b/c/d >expect &&
-       diff -u expect current
+       test_cmp expect current
 
 '
 
@@ -80,7 +80,7 @@ test_expect_success 'git ls-files (relative #1)' '
                git ls-files "../b/c"
        )  >current &&
        echo c/d >expect &&
-       diff -u expect current
+       test_cmp expect current
 
 '
 
@@ -93,7 +93,7 @@ test_expect_success 'git ls-files (relative #2)' '
                git ls-files --full-name "../e/f"
        )  >current &&
        echo a/e/f >expect &&
-       diff -u expect current
+       test_cmp expect current
 
 '
 
@@ -114,4 +114,52 @@ test_expect_success 'git ls-files (relative #3)' '
 
 '
 
+test_expect_success 'commit using absolute path names' '
+       git commit -m "foo" &&
+       echo aa >>a/b/c/d &&
+       git commit -m "aa" "$(pwd)/a/b/c/d"
+'
+
+test_expect_success 'log using absolute path names' '
+       echo bb >>a/b/c/d &&
+       git commit -m "bb" "$(pwd)/a/b/c/d" &&
+
+       git log a/b/c/d >f1.txt &&
+       git log "$(pwd)/a/b/c/d" >f2.txt &&
+       test_cmp f1.txt f2.txt
+'
+
+test_expect_success 'blame using absolute path names' '
+       git blame a/b/c/d >f1.txt &&
+       git blame "$(pwd)/a/b/c/d" >f2.txt &&
+       test_cmp f1.txt f2.txt
+'
+
+test_expect_success 'setup deeper work tree' '
+       test_create_repo tester
+'
+
+test_expect_success 'add a directory outside the work tree' '(
+       cd tester &&
+       d1="$(cd .. ; pwd)" &&
+       test_must_fail git add "$d1"
+)'
+
+
+test_expect_success 'add a file outside the work tree, nasty case 1' '(
+       cd tester &&
+       f="$(pwd)x" &&
+       echo "$f" &&
+       touch "$f" &&
+       test_must_fail git add "$f"
+)'
+
+test_expect_success 'add a file outside the work tree, nasty case 2' '(
+       cd tester &&
+       f="$(pwd | sed "s/.$//")x" &&
+       echo "$f" &&
+       touch "$f" &&
+       test_must_fail git add "$f"
+)'
+
 test_done