On Wed, Sep 16, 2015 at 9:39 PM, Stefan Beller <sbeller@xxxxxxxxxx> wrote: > git submodule update: cmd_update_recursive Commit message doesn't seem to match the patch... > Signed-off-by: Stefan Beller <sbeller@xxxxxxxxxx> > --- > git-submodule.sh | 31 ++++++++++++++++++++----------- > 1 file changed, 20 insertions(+), 11 deletions(-) > > diff --git a/git-submodule.sh b/git-submodule.sh > index 52c2967..c40d60f 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 "$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) > -- > 2.6.0.rc0.131.gf624c3d -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html