diff options
author | Junio C Hamano <gitster@pobox.com> | 2010-11-17 15:02:12 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-11-17 15:02:12 -0800 |
commit | aef5c38b59e111892cfb95cfafbef2c11cc69b4b (patch) | |
tree | 417ce8eccf8adf937ced6a7d81e345aee996b87c /git-submodule.sh | |
parent | 6f49ed6153be9f37d48bdec4a036a8b8a5629590 (diff) | |
parent | 98dbe63dbcb44218e23ccc92e1491c36b2e31945 (diff) | |
download | git-aef5c38b59e111892cfb95cfafbef2c11cc69b4b.tar.gz |
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
Diffstat (limited to 'git-submodule.sh')
-rwxr-xr-x | git-submodule.sh | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/git-submodule.sh b/git-submodule.sh index c291eed59c..33bc41f069 100755 --- a/git-submodule.sh +++ b/git-submodule.sh @@ -374,41 +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 @@ cmd_update() break ;; esac + orig_flags="$orig_flags $(git rev-parse --sq-quote "$1")" + shift done if test -n "$init" @@ -500,7 +496,7 @@ cmd_update() 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 @@ 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 @@ cmd_status() break ;; esac + orig_flags="$orig_flags $(git rev-parse --sq-quote "$1")" shift done @@ -790,7 +787,7 @@ cmd_status() 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 |