summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xgit-submodule.sh38
1 files changed, 21 insertions, 17 deletions
diff --git a/git-submodule.sh b/git-submodule.sh
index ab233712d2..577136148f 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
}