Code

Merge branch 'maint-1.6.0' into maint
authorJunio C Hamano <gitster@pobox.com>
Thu, 15 Jan 2009 06:34:05 +0000 (22:34 -0800)
committerJunio C Hamano <gitster@pobox.com>
Thu, 15 Jan 2009 06:34:05 +0000 (22:34 -0800)
* maint-1.6.0:
  fix handling of multiple untracked files for git mv -k
  add test cases for "git mv -k"

builtin-mv.c
t/t7001-mv.sh

index 4f65b5ae9baf66953e79886fd93fe31786b24d36..bce9959293e30925c4b16c40ac33a3f2e0474e30 100644 (file)
@@ -192,6 +192,7 @@ int cmd_mv(int argc, const char **argv, const char *prefix)
                                        memmove(destination + i,
                                                destination + i + 1,
                                                (argc - i) * sizeof(char *));
+                                       i--;
                                }
                        } else
                                die ("%s, source=%s, destination=%s",
index 575ef5beb2bdd3a0814fb45010ae7889b936f543..ef2e78f9df951cfacf5914dfff2a218d2e6f89f7 100755 (executable)
@@ -38,6 +38,31 @@ test_expect_success \
     'git diff-tree -r -M --name-status  HEAD^ HEAD | \
     grep "^R100..*path1/COPYING..*path0/COPYING"'
 
+test_expect_success \
+    'checking -k on non-existing file' \
+    'git mv -k idontexist path0'
+
+test_expect_success \
+    'checking -k on untracked file' \
+    'touch untracked1 &&
+     git mv -k untracked1 path0 &&
+     test -f untracked1 &&
+     test ! -f path0/untracked1'
+
+test_expect_success \
+    'checking -k on multiple untracked files' \
+    'touch untracked2 &&
+     git mv -k untracked1 untracked2 path0 &&
+     test -f untracked1 &&
+     test -f untracked2 &&
+     test ! -f path0/untracked1
+     test ! -f path0/untracked2'
+
+# clean up the mess in case bad things happen
+rm -f idontexist untracked1 untracked2 \
+     path0/idontexist path0/untracked1 path0/untracked2 \
+     .git/index.lock
+
 test_expect_success \
     'adding another file' \
     'cp "$TEST_DIRECTORY"/../README path0/README &&