On 8/24/2011 4:27 PM, Heiko Voigt wrote:
b---bc / \ / o X \ / \ c---cb
[snip]
Supposing you merge bc into cb: If I understand the situation correctly, the above is done first with a := cb:sub, b := bc:sub, base := b:sub and then another time with base := c:sub.
When merging bc and cb there are two merge bases: b and c. The recursive merge strategy first performs a "virtual" merge between b and c and uses the result as a fictional merge base between bc and cb. Currently the submodule merge search runs during the "virtual" merge and gives advice. Then it later dies while trying to search during the "real" merge. After applying my patch, try this: $ cd t && ./t7405-submodule-merge.sh --verbose ... Merging: 8cbd0fb cb virtual top-bc found 2 common ancestor(s): f6b4d5a b 4d9cfab c Merging: f6b4d5a b 4d9cfab c found 1 common ancestor(s): a2ff72f a warning: Failed to merge submodule sub (multiple merges found) 806049692f8921101f2e7223852e3bd74f7187c8: > Merge branch 'sub-c' into sub-bc db70dfacda48ce55365256a58eaf89b7da87cbe7: > Merge branch 'sub-b' into sub-cb Auto-merging sub CONFLICT (submodule): Merge conflict in sub fatal: --ancestry-path given but there are no bottom commits One can see that the advice given talks about merging "b:sub" and "c:sub" and the suggested commits are actually "bc:sub" and "cb:sub". This advice is not useful to someone mergeing bc and cb. -Brad -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html