Re: [PATCH 2/5] Treat D/F conflict entry more carefully in unpack-trees.c::threeway_merge()
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:43:03
Daniel Barkalow [off-list ref] writes:
On Sat, 7 Apr 2007, Junio C Hamano wrote:quoted
This fixes three buglets in threeway_merge() regarding D/F conflict entries. * After finishing with path D and handling path D/F, some stages have D/F conflict entry which are obviously non-NULL. For the purpose of determining if the path D/F is missing in the ancestor, they should not be taken into account. * D/F conflict entry is a phony entry and does not record the path being processed, so do not pick up the name from there.This bit is unnecessary, because the first bit means we treat D/F conflict as missing in that conditional, and don't count it as an entry at all, let alone one with a useful name.
I am not sure about what you mean by "first bit", but I added this after noticing there was a case where the path was not picked up from index/head/remote correctly because the "pick up the path from ancestors, while we check for any_anc_missing and no_anc_exists condition" loop at the beginning already set it to point at stages[i]->name (which is an empty string "" name of the df-conflict entry). But I notice that "aggressive" codepath is the only thing that wants to use the path (it uses it to check the working tree status), so maybe we should move that path computation business inside the aggressive codepath.