diff options
author | Torsten Bögershausen <tboegi@web.de> | 2021-03-01 22:41:42 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-03-04 02:07:12 +0100 |
commit | 93c3d297b5060a59715b8e8bc719d8e60ecf8106 (patch) | |
tree | dfa81715b43454a1f2509394a54321ffcde0dfb9 /builtin/mv.c | |
parent | git-mv: improve error message for conflicted file (diff) | |
download | git-93c3d297b5060a59715b8e8bc719d8e60ecf8106.tar.xz git-93c3d297b5060a59715b8e8bc719d8e60ecf8106.zip |
git mv foo FOO ; git mv foo bar gave an assert
The following sequence, on a case-insensitive file system,
(strictly speeking with core.ignorecase=true)
leads to an assertion failure and leaves .git/index.lock behind.
git init
echo foo >foo
git add foo
git mv foo FOO
git mv foo bar
This regression was introduced in Commit 9b906af657,
"git-mv: improve error message for conflicted file"
The bugfix is to change the "file exist case-insensitive in the index"
into the correct "file exist (case-sensitive) in the index".
This avoids the "assert" later in the code and keeps setting up the
"ce" pointer for ce_stage(ce) done in the next else if.
This fixes
https://github.com/git-for-windows/git/issues/2920
Reported-By: Dan Moseley <Dan.Moseley@microsoft.com>
Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/mv.c')
-rw-r--r-- | builtin/mv.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/builtin/mv.c b/builtin/mv.c index 7dac714af9..3fccdcb645 100644 --- a/builtin/mv.c +++ b/builtin/mv.c @@ -221,7 +221,7 @@ int cmd_mv(int argc, const char **argv, const char *prefix) } argc += last - first; } - } else if (!(ce = cache_file_exists(src, length, ignore_case))) { + } else if (!(ce = cache_file_exists(src, length, 0))) { bad = _("not under version control"); } else if (ce_stage(ce)) { bad = _("conflicted"); |