Browse Source

fix handling of multiple untracked files for git mv -k

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>
maint
Michael J Gruber 16 years ago committed by Junio C Hamano
parent
commit
be17262d13
  1. 1
      builtin-mv.c
  2. 2
      t/t7001-mv.sh

1
builtin-mv.c

@ -192,6 +192,7 @@ int cmd_mv(int argc, const char **argv, const char *prefix)
memmove(destination + i, memmove(destination + i,
destination + i + 1, destination + i + 1,
(argc - i) * sizeof(char *)); (argc - i) * sizeof(char *));
i--;
} }
} else } else
die ("%s, source=%s, destination=%s", die ("%s, source=%s, destination=%s",

2
t/t7001-mv.sh

@ -49,7 +49,7 @@ test_expect_success \
test -f untracked1 && test -f untracked1 &&
test ! -f path0/untracked1' test ! -f path0/untracked1'


test_expect_failure \ test_expect_success \
'checking -k on multiple untracked files' \ 'checking -k on multiple untracked files' \
'touch untracked2 && 'touch untracked2 &&
git mv -k untracked1 untracked2 path0 && git mv -k untracked1 untracked2 path0 &&

Loading…
Cancel
Save