diff options
author | Junio C Hamano <gitster@pobox.com> | 2020-03-02 15:07:19 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-03-02 15:07:19 -0800 |
commit | 48d5f25ddd9812fc78632357d062894342dc55df (patch) | |
tree | 7ad506259d202b1c8e7f18fb29dcd667792a1c9a /merge-recursive.c | |
parent | 8c22bd9ff9d4a355d3546181698307a797fd2bd2 (diff) | |
parent | fb1c18fc466c6a9c6ea1b072c9db93c0046f4cbd (diff) | |
download | git-48d5f25ddd9812fc78632357d062894342dc55df.tar.gz |
Merge branch 'en/t3433-rebase-stat-dirty-failure'
The merge-recursive machinery failed to refresh the cache entry for
a merge result in a couple of places, resulting in an unnecessary
merge failure, which has been fixed.
* en/t3433-rebase-stat-dirty-failure:
merge-recursive: fix the refresh logic in update_file_flags
t3433: new rebase testcase documenting a stat-dirty-like failure
Diffstat (limited to 'merge-recursive.c')
-rw-r--r-- | merge-recursive.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/merge-recursive.c b/merge-recursive.c index aee1769a7a..e6f943c5cc 100644 --- a/merge-recursive.c +++ b/merge-recursive.c @@ -998,10 +998,13 @@ static int update_file_flags(struct merge_options *opt, free(buf); } update_index: - if (!ret && update_cache) - if (add_cacheinfo(opt, contents, path, 0, update_wd, + if (!ret && update_cache) { + int refresh = (!opt->priv->call_depth && + contents->mode != S_IFGITLINK); + if (add_cacheinfo(opt, contents, path, 0, refresh, ADD_CACHE_OK_TO_ADD)) return -1; + } return ret; } |