commit: release strbuf on error return in commit_tree_extended()
[gitweb.git] / builtin / fetch.c
index ade092bf8dfd8a1999403a6a2c599ab6e89356cb..225c734924f14854784cbc1e310f2fb817f1f38b 100644 (file)
@@ -17,6 +17,7 @@
 #include "connected.h"
 #include "argv-array.h"
 #include "utf8.h"
+#include "packfile.h"
 
 static const char * const builtin_fetch_usage[] = {
        N_("git fetch [<options>] [<repository> [<refspec>...]]"),
@@ -71,6 +72,9 @@ static int git_fetch_config(const char *k, const char *v, void *cb)
        if (!strcmp(k, "submodule.fetchjobs")) {
                max_children = parse_submodule_fetchjobs(k, v);
                return 0;
+       } else if (!strcmp(k, "fetch.recursesubmodules")) {
+               recurse_submodules = parse_fetch_recurse_submodules_arg(k, v);
+               return 0;
        }
 
        return git_default_config(k, v, cb);
@@ -81,6 +85,9 @@ static int gitmodules_fetch_config(const char *var, const char *value, void *cb)
        if (!strcmp(var, "submodule.fetchjobs")) {
                max_children = parse_submodule_fetchjobs(var, value);
                return 0;
+       } else if (!strcmp(var, "fetch.recursesubmodules")) {
+               recurse_submodules = parse_fetch_recurse_submodules_arg(var, value);
+               return 0;
        }
 
        return 0;
@@ -1354,12 +1361,6 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
        if (depth || deepen_since || deepen_not.nr)
                deepen = 1;
 
-       if (recurse_submodules != RECURSE_SUBMODULES_OFF) {
-               set_config_fetch_recurse_submodules(recurse_submodules_default);
-               gitmodules_config();
-               git_config(submodule_config, NULL);
-       }
-
        if (all) {
                if (argc == 1)
                        die(_("fetch --all does not take a repository argument"));
@@ -1399,6 +1400,7 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
                result = fetch_populated_submodules(&options,
                                                    submodule_prefix,
                                                    recurse_submodules,
+                                                   recurse_submodules_default,
                                                    verbosity < 0,
                                                    max_children);
                argv_array_clear(&options);