merge-recursive: fix the refresh logic in update_file_flags
authorElijah Newren <newren@gmail.com>
Wed, 19 Feb 2020 17:04:07 +0000 (17:04 +0000)
committerJunio C Hamano <gitster@pobox.com>
Wed, 19 Feb 2020 18:13:31 +0000 (10:13 -0800)
commitfb1c18fc466c6a9c6ea1b072c9db93c0046f4cbd
treecdfbb1797f22a09505afd92d0e17e1cc22c3a837
parent73113c592222eac40dfdf76d9b2bbc2137d73783
merge-recursive: fix the refresh logic in update_file_flags

If we need to delete a higher stage entry in the index to place the file
at stage 0, then we'll lose that file's stat information.  In such
situations we may still be able to detect that the file on disk is the
version we want (as noted by our comment in the code:
  /* do not overwrite file if already present */
), but we do still need to update the mtime since we are creating a new
cache_entry for that file.  Update the logic used to determine whether
we refresh a file's mtime.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
merge-recursive.c
t/t3433-rebase-across-mode-change.sh