From: Elijah Newren Date: Thu, 19 Apr 2018 17:58:21 +0000 (-0700) Subject: merge-recursive: fix remainder of was_dirty() to use original index X-Git-Tag: v2.18.0-rc0~50^2~2 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/277292d5ae27993d36f35fdd8d561c369b1e0962?ds=inline;hp=--cc merge-recursive: fix remainder of was_dirty() to use original index was_dirty() uses was_tracked(), which has been updated to use the original index rather than the current one. However, was_dirty() also had a separate call to cache_file_exists(), causing it to still implicitly use the current index. Update that to instead use index_file_exists(). Also, was_dirty() had a hack where it would mark any file as non-dirty if we simply didn't know its modification time. This was due to using the current index rather than the original index, because D/F conflicts and such would cause unpack_trees() to not copy the modification times from the original index to the current one. Now that we are using the original index, we can dispense with this hack. Signed-off-by: Elijah Newren Signed-off-by: Junio C Hamano --- 277292d5ae27993d36f35fdd8d561c369b1e0962 diff --git a/merge-recursive.c b/merge-recursive.c index f7478622f2..9015be55be 100644 --- a/merge-recursive.c +++ b/merge-recursive.c @@ -842,9 +842,9 @@ static int was_dirty(struct merge_options *o, const char *path) if (o->call_depth || !was_tracked(o, path)) return !dirty; - ce = cache_file_exists(path, strlen(path), ignore_case); - dirty = (ce->ce_stat_data.sd_mtime.sec > 0 && - verify_uptodate(ce, &o->unpack_opts) != 0); + ce = index_file_exists(o->unpack_opts.src_index, + path, strlen(path), ignore_case); + dirty = verify_uptodate(ce, &o->unpack_opts) != 0; return dirty; }