On Wed, Oct 26, 2016 at 4:07 PM, Matt McCutchen <matt@xxxxxxxxxxxxxxxxx> wrote: > I'm the lead developer of a research software application (https://bitb > ucket.org/objsheets/objsheets) that uses modified versions of two > third-party libraries, which we need to version and distribute along > with our application. For better or for worse, we haven't made it a > priority to upstream our changes, so for now we just want to optimize > for ease of (1) making and reviewing changes and (2) upgrading to newer > upstream versions. > > We've been using git submodules, but that's a pain for several reasons: > - We have to run "git submodule update" manually. That is true for now. :( But there are plans to revive a patch series to include updating the submodule into git-checkout. https://github.com/stefanbeller/git/commits/submodule-co > - We have to make separate commits and manage corresponding topic > branches for the superproject and subprojects. Well yeah, that is how submodule work on a conceptual level. While having multiple commits may seem like overhead, note the subtle difference for these commits. One if deep down in the stack patching one of the submodules, the other is a high level commit advancing the submodule pointer. Note that the target audience of these two commit messages might be vastly different, hence can be worded differently. (The submodule describing how you fixed e.g. a memleak or race condition and the superproject describes on why you needed to include that submodule, e.g. because you switched your toplevel application to use threads.) > - A diff of the superproject doesn't include the content of > subprojects. A recent patch series by Jacob Keller (jk/diff-submodule-diff-inline) taught git diff to show the diff in the submodule as well, see commits that are merged in 305d7f133956a5f43c94d938beabbfbb0ac1753c or: https://kernel.googlesource.com/pub/scm/git/git/+/fd47ae6a5b9cc0cfc56c1f7c43db612d26ca4b75%5E%21/#F1 Although this is just Git, you probably also have a code review system that would need that change as well. Also it is not part of any release yet, but soon will be. Is there anything else besides these 3 points that encourages you to switch away from submodules? Thanks, Stefan