|
16 | 16 | #include "quote.h" |
17 | 17 | #include "remote.h" |
18 | 18 | #include "worktree.h" |
| 19 | +#include "parse-options.h" |
19 | 20 |
|
20 | 21 | static int config_fetch_recurse_submodules = RECURSE_SUBMODULES_ON_DEMAND; |
21 | 22 | static int config_update_recurse_submodules = RECURSE_SUBMODULES_OFF; |
@@ -170,10 +171,28 @@ static int git_modules_config(const char *var, const char *value, void *cb) |
170 | 171 | return 0; |
171 | 172 | } |
172 | 173 |
|
173 | | -/* Loads all submodule settings from the config */ |
| 174 | +/* Loads all submodule settings from the config. */ |
174 | 175 | int submodule_config(const char *var, const char *value, void *cb) |
175 | 176 | { |
176 | | - return git_modules_config(var, value, cb); |
| 177 | + if (!strcmp(var, "submodule.recurse")) { |
| 178 | + int v = git_config_bool(var, value) ? |
| 179 | + RECURSE_SUBMODULES_ON : RECURSE_SUBMODULES_OFF; |
| 180 | + config_update_recurse_submodules = v; |
| 181 | + return 0; |
| 182 | + } else { |
| 183 | + return git_modules_config(var, value, cb); |
| 184 | + } |
| 185 | +} |
| 186 | + |
| 187 | +/* Cheap function that only determines if we're interested in submodules at all */ |
| 188 | +int git_default_submodule_config(const char *var, const char *value, void *cb) |
| 189 | +{ |
| 190 | + if (!strcmp(var, "submodule.recurse")) { |
| 191 | + int v = git_config_bool(var, value) ? |
| 192 | + RECURSE_SUBMODULES_ON : RECURSE_SUBMODULES_OFF; |
| 193 | + config_update_recurse_submodules = v; |
| 194 | + } |
| 195 | + return 0; |
177 | 196 | } |
178 | 197 |
|
179 | 198 | int option_parse_recurse_submodules_worktree_updater(const struct option *opt, |
|
0 commit comments