Brandon Williams <[email protected]> writes:
> Signed-off-by: Brandon Williams <[email protected]>
> ---
> git-submodule.sh | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/git-submodule.sh b/git-submodule.sh
> index ab233712d..e2d08595f 100755
> --- a/git-submodule.sh
> +++ b/git-submodule.sh
> @@ -1111,7 +1111,7 @@ cmd_sync()
> ;;
> esac
>
> - if git config "submodule.$name.url" >/dev/null 2>/dev/null
> + if git submodule--helper is-active "$sm_path"
> then
> displaypath=$(git submodule--helper relative-path
> "$prefix$sm_path" "$wt_prefix")
> say "$(eval_gettext "Synchronizing submodule url for
> '\$displaypath'")"
This is not a problem this patch introduces, but the loop this hunk
is in seems a bit inefficient. It maps the sm_path to its name and
then asks .gitmodules the URL the upstream suggests to clone it from,
munges it with a large case statement and discards all of that if
the module is not active.
Adding this patch on top would be a way to remove the inefficiency
and one level of nesting while at it, I think, but I may have missed
something, so please double check, and if you agree that this is a
good way to go, please do so as a preparatory clean-up.
Thanks.
git-submodule.sh | 19 +++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/git-submodule.sh b/git-submodule.sh
index e2d08595f0..dcdd36fa64 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -1089,6 +1089,12 @@ cmd_sync()
while read mode sha1 stage sm_path
do
die_if_unmatched "$mode" "$sha1"
+
+ if ! git submodule--helper is-active "$sm_path"
+ then
+ continue
+ fi
+
name=$(git submodule--helper name "$sm_path")
url=$(git config -f .gitmodules --get submodule."$name".url)
@@ -1111,14 +1117,12 @@ cmd_sync()
;;
esac
- if git submodule--helper is-active "$sm_path"
- 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"
+ 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
+ if test -e "$sm_path"/.git
+ then
(
sanitize_submodule_env
cd "$sm_path"
@@ -1131,7 +1135,6 @@ cmd_sync()
eval cmd_sync
fi
)
- fi
fi
done
}