Stefan Beller <sbel...@google.com> writes:

> Split the cloning part out to its own function,
> this allow us in a later patch to convert cmd_update in C.
>
> Signed-off-by: Stefan Beller <sbel...@google.com>
> ---

It appears that this is not just a refactor and loses the logic
around $cloned_modules variable that seems to avoid doing the same
thing twice.  An explanation on the reason why it no longer is
necessary in the proposed log message would be nice.

Thanks.


>  git-submodule.sh | 31 ++++++++++++++++++++-----------
>  1 file changed, 20 insertions(+), 11 deletions(-)
>
> diff --git a/git-submodule.sh b/git-submodule.sh
> index ea3260e..7f11158 100755
> --- a/git-submodule.sh
> +++ b/git-submodule.sh
> @@ -607,6 +607,24 @@ cmd_update_recursive()
>       fi
>  }
>  
> +cmd_update_clone()
> +{
> +     command="git checkout $subforce -q"
> +     die_msg="$(eval_gettext "Unable to checkout '\$sha1' in submodule path 
> '\$displaypath'")"
> +     say_msg="$(eval_gettext "Submodule path '\$displaypath': checked out 
> '\$sha1'")"
> +
> +     git submodule--helper clone ${GIT_QUIET:+--quiet} ${prefix:+--prefix 
> "$prefix"} --path "$sm_path" --name "$name" --url "$url" "$reference" 
> "$depth" || exit
> +
> +     if (clear_local_git_env; cd "$sm_path" && $command "$sha1")
> +     then
> +             say "$say_msg"
> +     else
> +             err="${err};$die_msg"
> +             return
> +     fi
> +     cmd_update_recursive
> +}
> +
>  #
>  # Update each submodule path to correct revision, using clone and checkout 
> as needed
>  #
> @@ -680,7 +698,6 @@ cmd_update()
>               cmd_init "--" "$@" || return
>       fi
>  
> -     cloned_modules=
>       git submodule--helper list --prefix "$wt_prefix" "$@" | {
>       err=
>       while read mode sha1 stage sm_path
> @@ -725,9 +742,8 @@ Maybe you want to use 'update --init'?")"
>  
>               if ! test -d "$sm_path"/.git && ! test -f "$sm_path"/.git
>               then
> -                     git submodule--helper clone ${GIT_QUIET:+--quiet} 
> --prefix "$prefix" --path "$sm_path" --name "$name" --url "$url" "$reference" 
> "$depth" || exit
> -                     cloned_modules="$cloned_modules;$name"
> -                     subsha1=
> +                     cmd_update_clone
> +                     continue
>               else
>                       subsha1=$(clear_local_git_env; cd "$sm_path" &&
>                               git rev-parse --verify HEAD) ||
> @@ -767,13 +783,6 @@ Maybe you want to use 'update --init'?")"
>                               die "$(eval_gettext "Unable to fetch in 
> submodule path '\$displaypath'")"
>                       fi
>  
> -                     # Is this something we just cloned?
> -                     case ";$cloned_modules;" in
> -                     *";$name;"*)
> -                             # then there is no local change to integrate
> -                             update_module=checkout ;;
> -                     esac
> -
>                       must_die_on_failure=
>                       case "$update_module" in
>                       checkout)
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to