aboutsummaryrefslogtreecommitdiff
path: root/git-submodule.sh
diff options
context:
space:
mode:
authorBrandon Williams <bmwill@google.com>2017-03-16 15:29:45 -0700
committerJunio C Hamano <gitster@pobox.com>2017-03-17 11:06:09 -0700
commite7849a9677e9db6af81f568ae40ad2eddf5d3f0d (patch)
treef51681e11255726dc8e5c30b6ef8031d18a33fd6 /git-submodule.sh
parent6dc9f01f33bdbaebcf811c89766d4e4902a96f27 (diff)
downloadgit-e7849a9677e9db6af81f568ae40ad2eddf5d3f0d.tar.gz
git-e7849a9677e9db6af81f568ae40ad2eddf5d3f0d.tar.xz
submodule sync: skip work for inactive submodules
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> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-submodule.sh')
-rwxr-xr-xgit-submodule.sh38
1 files 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
}