* [PATCH 1/3] Missing && in t/t7001.sh. @ 2009-02-04 9:32 Matthieu Moy 2009-02-04 9:32 ` [PATCH 2/3] [BUG] Add a testcase for "git mv -f" on untracked files Matthieu Moy 0 siblings, 1 reply; 4+ messages in thread From: Matthieu Moy @ 2009-02-04 9:32 UTC (permalink / raw) To: git, gitster; +Cc: Matthieu Moy Without this, the exit status is only the one of the last line. Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> --- t/t7001-mv.sh | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/t/t7001-mv.sh b/t/t7001-mv.sh index ef2e78f..e4dfe95 100755 --- a/t/t7001-mv.sh +++ b/t/t7001-mv.sh @@ -55,7 +55,7 @@ test_expect_success \ git mv -k untracked1 untracked2 path0 && test -f untracked1 && test -f untracked2 && - test ! -f path0/untracked1 + test ! -f path0/untracked1 && test ! -f path0/untracked2' # clean up the mess in case bad things happen -- 1.6.1.2.321.g68da9 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/3] [BUG] Add a testcase for "git mv -f" on untracked files. 2009-02-04 9:32 [PATCH 1/3] Missing && in t/t7001.sh Matthieu Moy @ 2009-02-04 9:32 ` Matthieu Moy 2009-02-04 9:32 ` [PATCH 3/3] builtin-mv.c: check for unversionned files before looking at the destination Matthieu Moy 0 siblings, 1 reply; 4+ messages in thread From: Matthieu Moy @ 2009-02-04 9:32 UTC (permalink / raw) To: git, gitster; +Cc: Matthieu Moy This currently fails with: git: builtin-mv.c:217: cmd_mv: Assertion `pos >= 0' failed. Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> --- t/t7001-mv.sh | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/t/t7001-mv.sh b/t/t7001-mv.sh index e4dfe95..52a47b5 100755 --- a/t/t7001-mv.sh +++ b/t/t7001-mv.sh @@ -58,6 +58,14 @@ test_expect_success \ test ! -f path0/untracked1 && test ! -f path0/untracked2' +test_expect_failure \ + 'checking -f on untracked file with existing target' \ + 'touch path0/untracked1 && + 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 \ -- 1.6.1.2.321.g68da9 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 3/3] builtin-mv.c: check for unversionned files before looking at the destination. 2009-02-04 9:32 ` [PATCH 2/3] [BUG] Add a testcase for "git mv -f" on untracked files Matthieu Moy @ 2009-02-04 9:32 ` Matthieu Moy 2009-02-04 20:54 ` Junio C Hamano 0 siblings, 1 reply; 4+ messages in thread From: Matthieu Moy @ 2009-02-04 9:32 UTC (permalink / raw) To: git, gitster; +Cc: Matthieu Moy The previous code was failing in the case where one moves an unversionned file to an existing destination, with mv -f: the "existing destination" was checked first, and the error was cancelled by the force flag. We now check the unrecoverable error first, which fixes the bug. Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> --- builtin-mv.c | 8 ++++---- t/t7001-mv.sh | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/builtin-mv.c b/builtin-mv.c index bce9959..01270fe 100644 --- a/builtin-mv.c +++ b/builtin-mv.c @@ -162,7 +162,9 @@ int cmd_mv(int argc, const char **argv, const char *prefix) } argc += last - first; } - } else if (lstat(dst, &st) == 0) { + } else if (cache_name_pos(src, length) < 0) + bad = "not under version control"; + else if (lstat(dst, &st) == 0) { bad = "destination exists"; if (force) { /* @@ -177,9 +179,7 @@ int cmd_mv(int argc, const char **argv, const char *prefix) } else bad = "Cannot overwrite"; } - } else if (cache_name_pos(src, length) < 0) - bad = "not under version control"; - else if (string_list_has_string(&src_for_dst, dst)) + } else if (string_list_has_string(&src_for_dst, dst)) bad = "multiple sources for the same target"; else string_list_insert(dst, &src_for_dst); diff --git a/t/t7001-mv.sh b/t/t7001-mv.sh index 52a47b5..8fb3a56 100755 --- a/t/t7001-mv.sh +++ b/t/t7001-mv.sh @@ -58,7 +58,7 @@ test_expect_success \ test ! -f path0/untracked1 && test ! -f path0/untracked2' -test_expect_failure \ +test_expect_success \ 'checking -f on untracked file with existing target' \ 'touch path0/untracked1 && git mv -f untracked1 path0 -- 1.6.1.2.321.g68da9 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 3/3] builtin-mv.c: check for unversionned files before looking at the destination. 2009-02-04 9:32 ` [PATCH 3/3] builtin-mv.c: check for unversionned files before looking at the destination Matthieu Moy @ 2009-02-04 20:54 ` Junio C Hamano 0 siblings, 0 replies; 4+ messages in thread From: Junio C Hamano @ 2009-02-04 20:54 UTC (permalink / raw) To: Matthieu Moy; +Cc: git Makes sense; thanks. ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2009-02-04 20:55 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-02-04 9:32 [PATCH 1/3] Missing && in t/t7001.sh Matthieu Moy 2009-02-04 9:32 ` [PATCH 2/3] [BUG] Add a testcase for "git mv -f" on untracked files Matthieu Moy 2009-02-04 9:32 ` [PATCH 3/3] builtin-mv.c: check for unversionned files before looking at the destination Matthieu Moy 2009-02-04 20:54 ` Junio C Hamano
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).