On Wed, Nov 15, 2017 at 9:13 AM, Jacob Keller <jacob.keller@xxxxxxxxx> wrote: > On Tue, Nov 14, 2017 at 10:13 AM, Stefan Beller <sbeller@xxxxxxxxxx> wrote: >> But this line of though might be distracting from your original point, >> which was that we have so much to keep in mind when doing tree >> operations (flags, D/F conflicts, now submodules too). I wonder how >> a sensible refactoring would look like to detangle all these aspects, >> but still keeping Git fast and not overengineered. > > I think given how complex a lot of these code paths are, that an > attempt to refactor it a bit to detangle some of the mess would be > well worth the time. I'd suspect it might make handling the more > complex task of actually resolving conflicts to be easier, so the > effort to clean up the code here should be worth it. I think changing from a 4-way merge to a 3-way merge would make things much better, as Junio outlined here: https://public-inbox.org/git/xmqqd147kpdm.fsf@xxxxxxxxxxxxxxxxxxxxxxxxxxx/ I don't know of any way to detangle the other aspects, yet.