Re: git mergetool broken when rerere active
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:50:20
Martin von Zweigbergk [off-list ref] writes:
When rerere is enabled, git mergetool uses 'git rerere status' to find
out which files to run the merge tool on. This was introduced in
bb0a484 (mergetool: Skip autoresolved paths, 2010-08-17). Before that,
'git ls-files -u' was used, whether or not rerere was active.
This change caused two problems:
(1) Before this change, it used to be that case that all conflicts
would be resolved and added to the index after running 'git
mergetool' without arguments, i.e. on all files. After the
change, conflicts of type 'deleted by them' or 'deleted by us'
would be ignored, since they are not listed shown by 'git rerere
status'.Good point. We used to say "everything that had conflict after a mergy operation", now we say "everything that rerere attempted resolution but didn't succeed". Missing are paths that rerere didn't even attempt to apply previous resolution at all. Probably we would need a "git rerere remaining" sobcommand that is similar to status but also includes the "punted" paths.