From: Jeff King Date: Mon, 08 Apr 2013 21:36:52 GMT Subject: Re: [RFC/PATCH 0/7] Rework git core for native submodules Message-ID: <20130408213652.GE9649@sigill.intra.peff.net> In-Reply-To: <51632B95.3040103@web.de> On Mon, Apr 08, 2013 at 10:41:57PM +0200, Jens Lehmann wrote: > (While it is easier to merge the link object, a .gitmodules > aware merge driver would work just as well) I have not been following this thread that closely, so apologies if I missed it, but one thing I have not seen mention of is how the extra information inside the gitlink object will require extra merge effort. Imagine I have two branches; one updates the submodule's commit pointer, and the other updates some meta-information about the submodule (e.g., it points the URL to a new host). In the current system, one change goes into .gitmodules, and the other goes into the gitlink path. In a new combined object, there is a conflict and we must do content-level merging on it (which presumably would be done with a specialized merge driver). So I think that in some cases .gitmodules creates more conflicts (submodule A and submodule B are touched and have a textual conflict), and sometimes the combined object would create more objects (you touch two parts of the of the combined object). The solution in both cases is a smarter merge driver that understands which parts semantically conflict and which parts do not. -Peff