Elijah Newren <newren@xxxxxxxxx> writes: >> If merge-recursive or merge-resolve is asked to merge a single >> commit to the current branch without any other strategies to use as >> a fallback, they leave the working tree and index into a state where >> the end-user can conclude the conflict resolution and commit the >> result. In spirit, we are in the same situation, aren't we? > > I don't think it's quite the same.... > ... > Or are you saying that if all merge strategies return a 2, we just > treat the last one as good enough and consider the merge to be in > progress? No, I was just confusing the difference between the special return value 2 and a normal failure value 1. I have a feeling that it would be nice if we can restore to pristine on the calling "git merge" side, rather than forcing individual strategy backends to implement the restore-to-pristine correctly, but in any case, as you said, we should behave as if a merge strategy backend never run after it failed with exit value 2 by restoring to pristine state.