On Tue, Oct 04, 2016 at 02:04:21PM +0200, Heiko Voigt wrote: > > I think the only sane default is going to be some kind of heuristic that > > says "submodules are probably in use". Something like "is there a > > .gitmodules file" is not perfect (you can have gitlink entries without > > it), but it's a really cheap constant-time check. > > I agree. We are adding convenience for submodules, so we can also say a > checked out ".gitmodules" file is a must to have convenience. > > I am not sure if I agree on another layer of options for this as > suggested in your post. More options mean more implementation > complexity and more confusion on the users side. > > How about we choose our defaults based on the existence of a checked out > .gitmodules file? So the default would only be --recurse-submodules=check > if there is a .gitmodules file in the worktree. All other users need to > either pass or explicitly configure it. That's OK with me. Though you may end up in the long run wanting some name for the default behavior (e.g., if people configure something else and then want to override back to "auto" in some instances), but that can probably come later. -Peff