Thanks Duy for reviewing! I added your suggestions as amending and as a new patch. Thanks, Stefan Interdiff to v19 (current origin/sb/submodule-parallel-update): diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c index 0272c98..1b0b13a 100644 --- a/builtin/submodule--helper.c +++ b/builtin/submodule--helper.c @@ -299,10 +299,10 @@ static int prepare_to_clone_next_submodule(const struct cache_entry *ce, if (ce_stage(ce)) { if (suc->recursive_prefix) { - strbuf_addf(out, "Skipping unmerged submodule %s/%s\n", + strbuf_addf(out,_("Skipping unmerged submodule %s/%s\n"), suc->recursive_prefix, ce->name); } else { - strbuf_addf(out, "Skipping unmerged submodule %s\n", + strbuf_addf(out, _("Skipping unmerged submodule %s\n"), ce->name); } goto cleanup; @@ -319,7 +319,7 @@ static int prepare_to_clone_next_submodule(const struct cache_entry *ce, if (suc->update.type == SM_UPDATE_NONE || (suc->update.type == SM_UPDATE_UNSPECIFIED && sub->update_strategy.type == SM_UPDATE_NONE)) { - strbuf_addf(out, "Skipping submodule '%s'\n", + strbuf_addf(out, _("Skipping submodule '%s'\n"), displaypath); goto cleanup; } @@ -525,13 +525,13 @@ int cmd_submodule__helper(int argc, const char **argv, const char *prefix) { int i; if (argc < 2) - die(_("fatal: submodule--helper subcommand must be " + die(_("submodule--helper subcommand must be " "called with a subcommand")); for (i = 0; i < ARRAY_SIZE(commands); i++) if (!strcmp(argv[1], commands[i].cmd)) return commands[i].fn(argc - 1, argv + 1, prefix); - die(_("fatal: '%s' is not a valid submodule--helper " + die(_("'%s' is not a valid submodule--helper " "subcommand"), argv[1]); } Stefan Beller (12): submodule-config: keep update strategy around submodule-config: drop check against NULL fetching submodules: respect `submodule.fetchJobs` config option submodule update: direct error message to stderr run_processes_parallel: treat output of children as byte array run-command: expose default_{start_failure, task_finished} run_processes_parallel: rename parameters for the callbacks run_processes_parallel: correctly terminate callbacks with an LF git submodule update: have a dedicated helper for cloning submodule helper: remove double 'fatal: ' prefix submodule update: expose parallelism to the user clone: allow an explicit argument for parallel submodule clones Documentation/config.txt | 6 + Documentation/git-clone.txt | 6 +- Documentation/git-submodule.txt | 7 +- builtin/clone.c | 19 ++- builtin/fetch.c | 2 +- builtin/submodule--helper.c | 259 +++++++++++++++++++++++++++++++++++++++- git-submodule.sh | 56 ++++----- run-command.c | 36 +++--- run-command.h | 29 ++++- strbuf.c | 6 + strbuf.h | 6 + submodule-config.c | 19 ++- submodule-config.h | 2 + submodule.c | 37 +++++- submodule.h | 18 +++ t/t5526-fetch-submodules.sh | 14 +++ t/t7400-submodule-basic.sh | 4 +- t/t7406-submodule-update.sh | 27 +++++ 18 files changed, 480 insertions(+), 73 deletions(-) -- 2.7.0.rc0.37.gb7b9e8e -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html