fix handling of multiple untracked files for git mv -k
authorMichael J Gruber <git@drmicha.warpmail.net>
Wed, 14 Jan 2009 17:03:22 +0000 (18:03 +0100)
committerJunio C Hamano <gitster@pobox.com>
Wed, 14 Jan 2009 17:34:22 +0000 (09:34 -0800)
The "-k" option to "git mv" should allow specifying multiple untracked
files. Currently, multiple untracked files raise an assertion if they
appear consecutively as arguments. Fix this by decrementing the loop
index after removing one entry from the array of arguments.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-mv.c
t/t7001-mv.sh

index 4f65b5a..bce9959 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 fddcdde..19493c8 100755 (executable)
@@ -49,7 +49,7 @@ test_expect_success \
      test -f untracked1 &&
      test ! -f path0/untracked1'
 
-test_expect_failure \
+test_expect_success \
     'checking -k on multiple untracked files' \
     'touch untracked2 &&
      git mv -k untracked1 untracked2 path0 &&