On Mon, Apr 30, 2018 at 1:45 PM, Avery Pennarun <apenwarr@xxxxxxxxx> wrote: > On Mon, Apr 30, 2018 at 5:50 AM, Ævar Arnfjörð Bjarmason > <avarab@xxxxxxxxx> wrote: >> I think at this point git-subtree is widely used enough to move out of >> contrib/, maybe others disagree, but patches are always better for >> discussion that patch-less ML posts. > > I really was hoping git-subtree would be completely obsoleted by > git-submodule by now, but... it hasn't been, so... no objections on > this end. No objections from me either. Submodules seem to serve a slightly different purpose, though? With Subtrees the superproject always contains all the code, even when you squash the subtree histroy when merging it in. In the submodule world, you may not have access to one of the submodules. Submodules do not need to produce a synthetic project history when splitting off again, as the history is genuine. This allows for easier work with upstream. Subtrees present you the whole history by default and the user needs to be explicit about not wanting to see history from the subtree, which is the opposite of submodules (though this may be planned in the future to switch). > The gerrit team (eg. Stefan Beller) has been doing some really great > stuff to make submodules more usable by helping with relative > submodule links and by auto-updating links in supermodules at the > right times. Unfortunately doing that requires help from the server > side, which kind of messes up decentralization and so doesn't solve > the problem in the general case. Conceptually Gerrit is doing while true: git submodule update --remote if worktree is dirty: git commit "update the submodules" just that Gerrit doesn't poll but does it event based. > I really wish there were a good answer, but I don't know what it is. > I do know that lots of people seem to at least be happy using > git-subtree, and would be even happier if it were installed > automatically with git. https://trends.google.com/trends/explore?date=all&q=git%20subtree,git%20submodule Not sure what to make of this data.