Relates (but orthogonal) to my other thread [wishlist] git submodule update --reset-hard ATM, it possible to specify per submodule update strategy via configuration variable submodule.SUBMODULE.update where SUBMODULE is the name of the corresponding submodule. But I see no way to specify default update strategy for all submodules. >From our conversation in that other thread I have discovered to myself about existence of submodule.recurse configuration, and there seems to be a few more (.fetchJobs, .active) where e.g. .active seems to complement per-submodule submodule.*.active: yoh@debian:~/proj/misc/git$ git grep '[^.]submodule\.[a-z]' -- Documentation/ Documentation/RelNotes/2.14.0.txt: * Many commands learned to pay attention to submodule.recurse Documentation/RelNotes/2.15.0.txt: * "git -c submodule.recurse=yes pull" did not work as if the Documentation/config.txt:include::config/submodule.txt[] Documentation/config/submodule.txt: update'. If neither submodule.<name>.active or submodule.active are Documentation/config/submodule.txt: interact with submodules; settings like `submodule.active` Documentation/config/submodule.txt: submodule.active config option. See linkgit:gitsubmodules[7] for Documentation/config/submodule.txt: as computed via `submodule.alternateLocation`. Possible values are Documentation/git-clone.txt: of multiple entries. The resulting clone has `submodule.active` set to Documentation/git-clone.txt: Defaults to the `submodule.fetchJobs` option. Documentation/git-submodule.txt:If no path is specified and submodule.active has been configured, submodules Documentation/git-submodule.txt: Defaults to the `submodule.fetchJobs` option. Documentation/gitsubmodules.txt:`submodule.foo.path = path/to/bar`. Documentation/gitsubmodules.txt:The section `submodule.foo.*` in the `.gitmodules` file gives additional Documentation/gitsubmodules.txt:hints to Git's porcelain layer. For example, the `submodule.foo.url` Documentation/gitsubmodules.txt: b. if the submodule's path matches the pathspec in `submodule.active` Documentation/gitsubmodules.txt:submodule's path is excluded in the pathspec in `submodule.active`, the Documentation/gitsubmodules.txt: git config --global submodule.recurse true Documentation/gitsubmodules.txt:your working tree. Alternatively you can set 'submodule.recurse' to have Documentation/technical/api-config.txt:if (!git_configset_get_bool(gm_config, "submodule.frotz.ignore", &b)) { Documentation/technical/http-protocol.txt: $GIT_URL: http://example.com/git/repo.git/path/submodule.git Documentation/technical/http-protocol.txt: URL request: http://example.com/git/repo.git/path/submodule.git/info/refs I wondered, if you think it would be sensible to also add of submodule.update which would be considered before submodule.SUBMODULE.update variable possibly defined per submodule. That would be more inline with desire to use any of the --merge, --rebase (and hopefully soon --reset-hard) strategies specified as an option for submodule update, where no per-submodule handling is happening. Thanks in advance for the consideration! -- Yaroslav O. Halchenko Center for Open Neuroscience http://centerforopenneuroscience.org Dartmouth College, 419 Moore Hall, Hinman Box 6207, Hanover, NH 03755 Phone: +1 (603) 646-9834 Fax: +1 (603) 646-1419 WWW: http://www.linkedin.com/in/yarik