Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2020-03-03 02:07:19 +0300
committerJunio C Hamano <gitster@pobox.com>2020-03-03 02:07:19 +0300
commit48d5f25ddd9812fc78632357d062894342dc55df (patch)
tree7ad506259d202b1c8e7f18fb29dcd667792a1c9a /merge-recursive.c
parent8c22bd9ff9d4a355d3546181698307a797fd2bd2 (diff)
parentfb1c18fc466c6a9c6ea1b072c9db93c0046f4cbd (diff)
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.c7
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;
}