On Thu, Apr 12, 2018 at 4:17 PM, Junio C Hamano <[email protected]> wrote:
>
> A bit of detour. "Change in side branch happened to be a subset of
> the change in trunk and gets subsumed, but we end up writing the
> same result" happens also with the simpler resolve strategy.
>
> Here is a fix.
Heh. Except git-merge-one-file.sh is *only* used for that case, so
this doesn't fix the normal case.
I verified that the normal case situation is that
"update_file_flags()" thing that checks out the end result.
It's called by this case:
} else if (a_oid && b_oid) {
/* Case C: Added in both (check for same permissions) and */
/* case D: Modified in both, but differently. */
clean_merge = merge_content(o, path,
o_oid, o_mode, a_oid,
a_mode, b_oid, b_mode,
NULL);
in process_entry(), and I think we could just there add a test for if
o_old,o_mod == a_oid,a_mode or something?
Linus