vcs-svn: avoid using ls command twice
[gitweb.git] / t / t3030-merge-recursive.sh
index e66e550b2449e76435a0bf16c6a9889c0794f858..34794f8a70e1c9b71384363e022d08da4ac8872e 100755 (executable)
@@ -25,6 +25,10 @@ test_expect_success 'setup 1' '
        git branch submod &&
        git branch copy &&
        git branch rename &&
+       if test_have_prereq SYMLINKS
+       then
+               git branch rename-ln
+       fi &&
 
        echo hello >>a &&
        cp a d/e &&
@@ -255,7 +259,16 @@ test_expect_success 'setup 8' '
        git mv a e &&
        git add e &&
        test_tick &&
-       git commit -m "rename a->e"
+       git commit -m "rename a->e" &&
+       if test_have_prereq SYMLINKS
+       then
+               git checkout rename-ln &&
+               git mv a e &&
+               ln -s e a &&
+               git add a e &&
+               test_tick &&
+               git commit -m "rename a->e, symlink a->e"
+       fi
 '
 
 test_expect_success 'setup 9' '
@@ -544,7 +557,7 @@ test_expect_success 'reset and bind merge' '
                echo "100644 $o0 0      c"
                echo "100644 $o1 0      d/e"
        ) >expected &&
-       test_cmp expected actual
+       test_cmp expected actual &&
 
        git read-tree --prefix=z/ master &&
        git ls-files -s >actual &&
@@ -615,4 +628,26 @@ test_expect_success 'merge-recursive copy vs. rename' '
        test_cmp expected actual
 '
 
+if test_have_prereq SYMLINKS
+then
+       test_expect_success 'merge-recursive rename vs. rename/symlink' '
+
+               git checkout -f rename &&
+               git merge rename-ln &&
+               ( git ls-tree -r HEAD ; git ls-files -s ) >actual &&
+               (
+                       echo "100644 blob $o0   b"
+                       echo "100644 blob $o0   c"
+                       echo "100644 blob $o0   d/e"
+                       echo "100644 blob $o0   e"
+                       echo "100644 $o0 0      b"
+                       echo "100644 $o0 0      c"
+                       echo "100644 $o0 0      d/e"
+                       echo "100644 $o0 0      e"
+               ) >expected &&
+               test_cmp expected actual
+       '
+fi
+
+
 test_done