From: Junio C Hamano Date: Wed, 17 Nov 2010 23:02:12 +0000 (-0800) Subject: Merge branch 'kb/maint-submodule-savearg' X-Git-Tag: v1.7.4-rc0~128 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/aef5c38b59e111892cfb95cfafbef2c11cc69b4b?ds=inline;hp=-c Merge branch 'kb/maint-submodule-savearg' * kb/maint-submodule-savearg: submodule: only preserve flags across recursive status/update invocations submodule: preserve all arguments exactly when recursing --- aef5c38b59e111892cfb95cfafbef2c11cc69b4b diff --combined git-submodule.sh index c291eed59c,4fd8982894..33bc41f069 --- a/git-submodule.sh +++ b/git-submodule.sh @@@ -374,41 -374,35 +374,35 @@@ cmd_init( cmd_update() { # parse $args after "submodule ... update". - orig_args="$@" + orig_flags= while test $# -ne 0 do case "$1" in -q|--quiet) - shift GIT_QUIET=1 ;; -i|--init) init=1 - shift ;; -N|--no-fetch) - shift nofetch=1 ;; -r|--rebase) - shift update="rebase" ;; --reference) case "$2" in '') usage ;; esac reference="--reference=$2" - shift 2 + orig_flags="$orig_flags $(git rev-parse --sq-quote "$1")" + shift ;; --reference=*) reference="$1" - shift ;; -m|--merge) - shift update="merge" ;; --recursive) - shift recursive=1 ;; --) @@@ -422,6 -416,8 +416,8 @@@ break ;; esac + orig_flags="$orig_flags $(git rev-parse --sq-quote "$1")" + shift done if test -n "$init" @@@ -500,7 -496,7 +496,7 @@@ if test -n "$recursive" then - (clear_local_git_env; cd "$path" && cmd_update $orig_args) || + (clear_local_git_env; cd "$path" && eval cmd_update "$orig_flags") || die "Failed to recurse into submodule path '$path'" fi done @@@ -733,7 -729,7 +729,7 @@@ cmd_summary() cmd_status() { # parse $args after "submodule ... status". - orig_args="$@" + orig_flags= while test $# -ne 0 do case "$1" in @@@ -757,6 -753,7 +753,7 @@@ break ;; esac + orig_flags="$orig_flags $(git rev-parse --sq-quote "$1")" shift done @@@ -790,7 -787,7 +787,7 @@@ prefix="$displaypath/" clear_local_git_env cd "$path" && - cmd_status $orig_args + eval cmd_status "$orig_args" ) || die "Failed to recurse into submodule path '$path'" fi @@@ -836,12 -833,11 +833,12 @@@ cmd_sync( ;; esac + say "Synchronizing submodule url for '$name'" + git config submodule."$name".url "$url" + if test -e "$path"/.git then ( - say "Synchronizing submodule url for '$name'" - git config submodule."$name".url "$url" clear_local_git_env cd "$path" remote=$(get_default_remote)