Code

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 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 fddcdde6ebc47615e8541c2ae9dad30adb708c78..19493c8052b8fe009c80336230b2044669c23394 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 &&