[PATCH v5 03/10] submodule sync: skip work for inactive submodules
- From
- Brandon Williams <bmwill@google.com>
- Date
- Mar 17, 2017, 22:37 UTC
- Message-ID
- <20170317223805.95271-4-bmwill@google.com>
- In-Reply-To
- <20170317223805.95271-1-bmwill@google.com>
Sync does some work determining what URLs should be used for a submodule but then throws this work away if the submodule isn't active. Instead perform the activity check earlier and skip inactive submodule in order to avoid doing unnecessary work.
Signed-off-by: Brandon Williams <bmwill@google.com> --- git-submodule.sh | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-)
diff --git a/git-submodule.sh b/git-submodule.sh index ab233712d..577136148 100755 --- a/git-submodule.sh +++ b/git-submodule.sh @@ -1090,6 +1090,13 @@ cmd_sync() do die_if_unmatched "$mode" "$sha1" name=$(git submodule--helper name "$sm_path") + + # skip inactive submodules + if ! git config "submodule.$name.url" >/dev/null 2>/dev/null + then + continue + fi + url=$(git config -f .gitmodules --get submodule."$name".url) # Possibly a url relative to parent @@ -1111,27 +1118,24 @@ cmd_sync() ;; esac - if git config "submodule.$name.url" >/dev/null 2>/dev/null + displaypath=$(git submodule--helper relative-path "$prefix$sm_path" "$wt_prefix") + say "$(eval_gettext "Synchronizing submodule url for '\$displaypath'")" + git config submodule."$name".url "$super_config_url" + + if test -e "$sm_path"/.git then - displaypath=$(git submodule--helper relative-path "$prefix$sm_path" "$wt_prefix") - say "$(eval_gettext "Synchronizing submodule url for '\$displaypath'")" - git config submodule."$name".url "$super_config_url" + ( + sanitize_submodule_env + cd "$sm_path" + remote=$(get_default_remote) + git config remote."$remote".url "$sub_origin_url" - if test -e "$sm_path"/.git + if test -n "$recursive" then - ( - sanitize_submodule_env - cd "$sm_path" - remote=$(get_default_remote) - git config remote."$remote".url "$sub_origin_url" - - if test -n "$recursive" - then - prefix="$prefix$sm_path/" - eval cmd_sync - fi - ) + prefix="$prefix$sm_path/" + eval cmd_sync fi + ) fi done }
-- 2.12.0.367.g23dc2f6d3c-goog