Use reflog in 'pull --rebase . foo'
[gitweb.git] / t / t7001-mv.sh
index 539effe694684dde01da1a93421a28b549b9527a..a845b154e4db50b52eb67eaefefcc42403c52c0e 100755 (executable)
@@ -6,7 +6,7 @@ test_description='git mv in subdirs'
 test_expect_success \
     'prepare reference tree' \
     'mkdir path0 path1 &&
-     cp ../../COPYING path0/COPYING &&
+     cp "$TEST_DIRECTORY"/../COPYING path0/COPYING &&
      git add path0/COPYING &&
      git commit -m add -a'
 
@@ -58,6 +58,14 @@ test_expect_success \
      test ! -f path0/untracked1 &&
      test ! -f path0/untracked2'
 
+test_expect_success \
+    'checking -f on untracked file with existing target' \
+    'touch path0/untracked1 &&
+     test_must_fail git mv -f untracked1 path0 &&
+     test ! -f .git/index.lock &&
+     test -f untracked1 &&
+     test -f path0/untracked1'
+
 # clean up the mess in case bad things happen
 rm -f idontexist untracked1 untracked2 \
      path0/idontexist path0/untracked1 path0/untracked2 \
@@ -65,7 +73,7 @@ rm -f idontexist untracked1 untracked2 \
 
 test_expect_success \
     'adding another file' \
-    'cp ../../README path0/README &&
+    'cp "$TEST_DIRECTORY"/../README path0/README &&
      git add path0/README &&
      git commit -m add2 -a'
 
@@ -181,13 +189,25 @@ test_expect_success 'absolute pathname outside should fail' '(
 
 )'
 
+test_expect_success 'git mv to move multiple sources into a directory' '
+       rm -fr .git && git init &&
+       mkdir dir other &&
+       >dir/a.txt &&
+       >dir/b.txt &&
+       git add dir/?.txt &&
+       git mv dir/a.txt dir/b.txt other &&
+       git ls-files >actual &&
+       { echo other/a.txt; echo other/b.txt; } >expect &&
+       test_cmp expect actual
+'
+
 test_expect_success 'git mv should not change sha1 of moved cache entry' '
 
        rm -fr .git &&
        git init &&
        echo 1 >dirty &&
        git add dirty &&
-       entry="$(git ls-files --stage dirty | cut -f 1)"
+       entry="$(git ls-files --stage dirty | cut -f 1)" &&
        git mv dirty dirty2 &&
        [ "$entry" = "$(git ls-files --stage dirty2 | cut -f 1)" ] &&
        echo 2 >dirty2 &&
@@ -198,7 +218,7 @@ test_expect_success 'git mv should not change sha1 of moved cache entry' '
 
 rm -f dirty dirty2
 
-test_expect_success 'git mv should overwrite symlink to a file' '
+test_expect_success SYMLINKS 'git mv should overwrite symlink to a file' '
 
        rm -fr .git &&
        git init &&
@@ -217,7 +237,7 @@ test_expect_success 'git mv should overwrite symlink to a file' '
 
 rm -f moved symlink
 
-test_expect_success 'git mv should overwrite file with a symlink' '
+test_expect_success SYMLINKS 'git mv should overwrite file with a symlink' '
 
        rm -fr .git &&
        git init &&