diff options
author | Junio C Hamano <gitster@pobox.com> | 2018-06-25 22:22:35 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-06-25 22:22:35 +0200 |
commit | ea27893a65cc41cad2710466aa6a58866ff22f1e (patch) | |
tree | 0fbc3a9a9beaa5083ddf858d4c50da7ed4d56972 /git-submodule.sh | |
parent | Prepare to start 2.19 cycle (diff) | |
parent | submodule: port submodule subcommand 'foreach' from shell to C (diff) | |
download | git-ea27893a65cc41cad2710466aa6a58866ff22f1e.tar.xz git-ea27893a65cc41cad2710466aa6a58866ff22f1e.zip |
Merge branch 'pc/submodule-helper-foreach'
The bulk of "git submodule foreach" has been rewritten in C.
* pc/submodule-helper-foreach:
submodule: port submodule subcommand 'foreach' from shell to C
submodule foreach: document variable '$displaypath'
submodule foreach: document '$sm_path' instead of '$path'
submodule foreach: correct '$path' in nested submodules from a subdirectory
Diffstat (limited to 'git-submodule.sh')
-rwxr-xr-x | git-submodule.sh | 40 |
1 files changed, 1 insertions, 39 deletions
diff --git a/git-submodule.sh b/git-submodule.sh index 78073cd87d..5f9d9f6ea3 100755 --- a/git-submodule.sh +++ b/git-submodule.sh @@ -335,45 +335,7 @@ cmd_foreach() shift done - toplevel=$(pwd) - - # dup stdin so that it can be restored when running the external - # command in the subshell (and a recursive call to this function) - exec 3<&0 - - { - git submodule--helper list --prefix "$wt_prefix" || - echo "#unmatched" $? - } | - while read -r mode sha1 stage sm_path - do - die_if_unmatched "$mode" "$sha1" - if test -e "$sm_path"/.git - then - displaypath=$(git submodule--helper relative-path "$prefix$sm_path" "$wt_prefix") - say "$(eval_gettext "Entering '\$displaypath'")" - name=$(git submodule--helper name "$sm_path") - ( - prefix="$prefix$sm_path/" - sanitize_submodule_env - cd "$sm_path" && - sm_path=$(git submodule--helper relative-path "$sm_path" "$wt_prefix") && - # we make $path available to scripts ... - path=$sm_path && - if test $# -eq 1 - then - eval "$1" - else - "$@" - fi && - if test -n "$recursive" - then - cmd_foreach "--recursive" "$@" - fi - ) <&3 3<&- || - die "$(eval_gettext "Stopping at '\$displaypath'; script returned non-zero status.")" - fi - done + git ${wt_prefix:+-C "$wt_prefix"} ${prefix:+--super-prefix "$prefix"} submodule--helper foreach ${GIT_QUIET:+--quiet} ${recursive:+--recursive} "$@" } # |