diff options
author | Jens Lehmann <Jens.Lehmann@web.de> | 2011-09-09 20:22:03 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-09-09 13:59:20 -0700 |
commit | 18322badc2b3b7f49f79da5273e003e9c0c4f549 (patch) | |
tree | da2a7c9e26e2a0cbe74c7d096b0c6d6dd58f69b0 /submodule.c | |
parent | f696543dad6c7ba27b0c4fab167a5687263a9ba0 (diff) | |
download | git-18322badc2b3b7f49f79da5273e003e9c0c4f549.tar.gz |
fetch: skip on-demand checking when no submodules are configured
It makes no sense to do the - possibly very expensive - call to "rev-list
<new-ref-sha1> --not --all" in check_for_new_submodule_commits() when
there aren't any submodules configured.
Leave check_for_new_submodule_commits() early when no name <-> path
mappings for submodules are found in the configuration. To make that work
reading the configuration had to be moved further up in cmd_fetch(), as
doing that after the actual fetch of the superproject was too late.
Reported-by: Martin Fick <mfick@codeaurora.org>
Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'submodule.c')
-rw-r--r-- | submodule.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/submodule.c b/submodule.c index b6dec70bd1..e0d5dcfedd 100644 --- a/submodule.c +++ b/submodule.c @@ -373,6 +373,10 @@ void check_for_new_submodule_commits(unsigned char new_sha1[20]) const char *argv[] = {NULL, NULL, "--not", "--all", NULL}; int argc = ARRAY_SIZE(argv) - 1; + /* No need to check if there are no submodules configured */ + if (!config_name_for_path.nr) + return; + init_revisions(&rev, NULL); argv[1] = xstrdup(sha1_to_hex(new_sha1)); setup_revisions(argc, argv, &rev, NULL); |