On Thu, Apr 26, 2018 at 03:19:36PM -0700, Stefan Beller wrote: > Stefan wrote: > > See https://github.com/git/git/commit/68d03e4a6e448aa557f52adef92595ac4d6cd4bd > > (68d03e4a6e (Implement automatic fast-forward merge for submodules, 2010-07-07) > > to explain the situation you encounter. (specifically merge_submodule > > at the end of the diff) > > +cc Heiko, author of that commit. In that commit we tried to be very careful about. I do not understand the situation in which the current strategy would be wrong by default. We only merge if the following applies: * The changes in the superproject on both sides point forward in the submodule. * One side is contained in the other. Contained from the submodule perspective. Sides from the superproject merge perspective. So in case of the mentioned rewind of a submodule: Only one side of the 3-way merge would point forward and the merge would fail. I can imagine, that in case of a temporary revert of a commit in the submodule that you would not want that merged into some other branch. But that would be the same without submodules. If you merge a temporary revert from another branch you will not get any conflict. So maybe someone can explain the use case in which one would get the results that seem wrong? Cheers Heiko