I find this to be one of the most useful features of git submodules. I can easily just cd into the module and do whatever related work I need to do there and then commit to both projects when I'm ready.
I find this to be one of the most useful features of git submodules. I can easily just cd into the module and do whatever related work I need to do there and then commit to both projects when I'm ready.
For example, in the project that I'm working on now, I have refined the app's "business logic" to an SPM module that I integrate, through GitHub.
The idea is that I don't change the logic, and I enforce that, by using it as an SPM module.
However, every now and then, I encounter a bug in this module, or I find the need to add something to its API. When that happens, I need to exclude the module from the dependency list in the project, include it directly, as a local link, and work on it that way. Committing is a separate task from the main app (Xcode allows aggregate commits, but Xcode's Git integration is so poor, that I don't use it).
It actually works well. A submodule would also work well, with more Git integration, but the drawbacks far outweigh the advantages.
Co-workers who have moved from svn to git have had no trouble understanding and working with git submodules.
2. Git submodules are occasionally used, but svn externals is something I'd never seen used back when I was on svn using teams.
To be complained about, something must be known about, and I think for most developers, svn externals isn't known about