mirror of
https://github.com/git/git
synced 2024-08-24 18:26:02 +00:00
merge-recursive.c: tolerate missing files while refreshing index
Teach add_cacheinfo to tell make_cache_entry to skip refreshing stat information when a file is missing from the work tree. We do not want the index to be stat-dirty after the merge but also do not want to fail when a file happens to be missing. This fixes the 'merge-recursive w/ empty work tree - ours has rename' case in t3030-merge-recursive. Suggested-by: Elijah Newren <newren@gmail.com> Signed-off-by: Brad King <brad.king@kitware.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
257627268a
commit
6e2068ae48
|
@ -202,7 +202,8 @@ static int add_cacheinfo(unsigned int mode, const unsigned char *sha1,
|
||||||
{
|
{
|
||||||
struct cache_entry *ce;
|
struct cache_entry *ce;
|
||||||
ce = make_cache_entry(mode, sha1 ? sha1 : null_sha1, path, stage,
|
ce = make_cache_entry(mode, sha1 ? sha1 : null_sha1, path, stage,
|
||||||
(refresh ? CE_MATCH_REFRESH : 0 ));
|
(refresh ? (CE_MATCH_REFRESH |
|
||||||
|
CE_MATCH_IGNORE_MISSING) : 0 ));
|
||||||
if (!ce)
|
if (!ce)
|
||||||
return error(_("addinfo_cache failed for path '%s'"), path);
|
return error(_("addinfo_cache failed for path '%s'"), path);
|
||||||
return add_cache_entry(ce, options);
|
return add_cache_entry(ce, options);
|
||||||
|
|
|
@ -518,7 +518,7 @@ test_expect_success 'reset and bind merge' '
|
||||||
|
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_failure 'merge-recursive w/ empty work tree - ours has rename' '
|
test_expect_success 'merge-recursive w/ empty work tree - ours has rename' '
|
||||||
(
|
(
|
||||||
GIT_WORK_TREE="$PWD/ours-has-rename-work" &&
|
GIT_WORK_TREE="$PWD/ours-has-rename-work" &&
|
||||||
export GIT_WORK_TREE &&
|
export GIT_WORK_TREE &&
|
||||||
|
|
Loading…
Reference in a new issue