Junio C Hamano <gitster@xxxxxxxxx> writes: > Thomas Rast <trast@xxxxxxxxxxxxxxx> writes: > >> The merge says >> >> Trying simple merge with 5b3e4bb1c2d88d6967fb575729fbfc86df5eaec9 >> Simple merge did not work, trying automatic merge. >> Auto-merging foo >> ERROR: Merge conflict in foo >> fatal: merge program failed >> Automated merge did not work. >> Should not be doing an Octopus. >> Merge with strategy octopus failed. > ... > Read the second from the last line of what you were told by git. Run "git > reset --hard" after that, perhaps. By the way, there are three failure modes in Octopus. (0) your index (not work tree) is dirty; this is not limited to octopus merge but any merge will be refused; (1) while it merges other heads one-by-one, it gets conflicts on an earlier one, before it even attempts to merge all of them. Recording the heads that it so far attempted to merge in MERGE_HEAD is wrong (the result won't be an Octopus the end user wanted to carete), and recording all the heads the user gave in MERGE_HEAD is even more wrong (it hasn't even looked at the later heads yet, so there is no way for the index or work tree to contain anything from them). The above is hitting this case. (2) it gets conflicts while merging the _last_ head. It records MERGE_HEAD and allows you to record the resolved result. I think originally we treated (1) and (2) the same way, because an Octopus is to record the most trivial merge with more than 2 legs, and a rough definition of "the most trivial" is "tracks of totally independent works; you could merge them one by one and _in any order_, and the result won't matter because they are logically independent. However if they are _so_ independent, why not record them as merged in one step (i.e. octopus), instead of insisting on recording in what order you merged them". Obviously, if you get a conflict during Octopus creation, they were not tracks of totally independent works, and that is where the "Should not" in the message comes from. We later relaxed it to allow a conflict at the last step, not because recording an Octopus with nontrivial merge is particuarly a good idea we should encourage, but because there simply weren't reason not to. -- 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