On Mon, Dec 4, 2017 at 11:33 AM, Stefan Beller <sbeller@xxxxxxxxxx> wrote: > On Sat, Nov 25, 2017 at 9:59 PM, Jacob Keller <jacob.keller@xxxxxxxxx> wrote: >> On Sat, Nov 25, 2017 at 2:37 PM, Elijah Newren <newren@xxxxxxxxx> wrote: >>> 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. > > Jonathan Nieder and me tried some pair programming some time ago[1] > plumbing the repository object through most of the low level internals, which > would help in detangling submodule merges as then these merges could > be done in-core, just as Junio laid out. > > [1] https://github.com/stefanbeller/git/tree/object-store-jrn-rebased > This sounds promising to me. Thanks, Jake >> I agree, that is absolutely a (big) step in the right direction. > > > I agree as well; A better (abstracted) merge backend would be huge for > the future of Git. > > Thanks, > Stefan