merge-recursive: avoid triggering add_cacheinfo error with dirty mod

If a cherry-pick or merge with a rename results in a skippable update
(due to the merged content matching what HEAD already had), but the
working directory is dirty, avoid trying to refresh the index as that
will fail.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Elijah Newren 2018-04-19 10:58:18 -07:00 коммит произвёл Junio C Hamano
Родитель bd42380ef1
Коммит 2f682e21a6
2 изменённых файлов: 2 добавлений и 2 удалений

Просмотреть файл

@ -2786,7 +2786,7 @@ static int merge_content(struct merge_options *o,
path_renamed_outside_HEAD = !path2 || !strcmp(path, path2);
if (!path_renamed_outside_HEAD) {
if (add_cacheinfo(o, mfi.mode, &mfi.oid, path,
0, (!o->call_depth), 0))
0, (!o->call_depth && !is_dirty), 0))
return -1;
return mfi.clean;
}

Просмотреть файл

@ -141,7 +141,7 @@ test_expect_success 'cherry-pick "-" works with arguments' '
test_cmp expect actual
'
test_expect_failure 'cherry-pick works with dirty renamed file' '
test_expect_success 'cherry-pick works with dirty renamed file' '
test_commit to-rename &&
git checkout -b unrelated &&
test_commit unrelated &&