Merge branch 'nd/submodule-foreach-quiet'

"git submodule foreach <command> --quiet" did not pass the option
down correctly, which has been corrected.

* nd/submodule-foreach-quiet:
  submodule foreach: fix "<command> --quiet" not being respected
This commit is contained in:
Junio C Hamano
2019-04-25 16:41:24 +09:00
3 changed files with 20 additions and 9 deletions

View File

@ -566,12 +566,12 @@ static int module_foreach(int argc, const char **argv, const char *prefix)
}; };
const char *const git_submodule_helper_usage[] = { const char *const git_submodule_helper_usage[] = {
N_("git submodule--helper foreach [--quiet] [--recursive] <command>"), N_("git submodule--helper foreach [--quiet] [--recursive] [--] <command>"),
NULL NULL
}; };
argc = parse_options(argc, argv, prefix, module_foreach_options, argc = parse_options(argc, argv, prefix, module_foreach_options,
git_submodule_helper_usage, PARSE_OPT_KEEP_UNKNOWN); git_submodule_helper_usage, 0);
if (module_list_compute(0, NULL, prefix, &pathspec, &list) < 0) if (module_list_compute(0, NULL, prefix, &pathspec, &list) < 0)
return 1; return 1;
@ -709,7 +709,7 @@ static int module_init(int argc, const char **argv, const char *prefix)
}; };
const char *const git_submodule_helper_usage[] = { const char *const git_submodule_helper_usage[] = {
N_("git submodule--helper init [<path>]"), N_("git submodule--helper init [<options>] [<path>]"),
NULL NULL
}; };
@ -2096,7 +2096,7 @@ static int absorb_git_dirs(int argc, const char **argv, const char *prefix)
}; };
const char *const git_submodule_helper_usage[] = { const char *const git_submodule_helper_usage[] = {
N_("git submodule--helper embed-git-dir [<path>...]"), N_("git submodule--helper absorb-git-dirs [<options>] [<path>...]"),
NULL NULL
}; };

View File

@ -347,7 +347,7 @@ cmd_foreach()
shift shift
done done
git ${wt_prefix:+-C "$wt_prefix"} ${prefix:+--super-prefix "$prefix"} submodule--helper foreach ${GIT_QUIET:+--quiet} ${recursive:+--recursive} "$@" git ${wt_prefix:+-C "$wt_prefix"} ${prefix:+--super-prefix "$prefix"} submodule--helper foreach ${GIT_QUIET:+--quiet} ${recursive:+--recursive} -- "$@"
} }
# #
@ -378,7 +378,7 @@ cmd_init()
shift shift
done done
git ${wt_prefix:+-C "$wt_prefix"} ${prefix:+--super-prefix "$prefix"} submodule--helper init ${GIT_QUIET:+--quiet} "$@" git ${wt_prefix:+-C "$wt_prefix"} ${prefix:+--super-prefix "$prefix"} submodule--helper init ${GIT_QUIET:+--quiet} -- "$@"
} }
# #
@ -414,7 +414,7 @@ cmd_deinit()
shift shift
done done
git ${wt_prefix:+-C "$wt_prefix"} submodule--helper deinit ${GIT_QUIET:+--quiet} ${prefix:+--prefix "$prefix"} ${force:+--force} ${deinit_all:+--all} "$@" git ${wt_prefix:+-C "$wt_prefix"} submodule--helper deinit ${GIT_QUIET:+--quiet} ${prefix:+--prefix "$prefix"} ${force:+--force} ${deinit_all:+--all} -- "$@"
} }
is_tip_reachable () ( is_tip_reachable () (
@ -543,6 +543,7 @@ cmd_update()
${depth:+--depth "$depth"} \ ${depth:+--depth "$depth"} \
$recommend_shallow \ $recommend_shallow \
$jobs \ $jobs \
-- \
"$@" || echo "#unmatched" $? "$@" || echo "#unmatched" $?
} | { } | {
err= err=
@ -1001,7 +1002,7 @@ cmd_status()
shift shift
done done
git ${wt_prefix:+-C "$wt_prefix"} ${prefix:+--super-prefix "$prefix"} submodule--helper status ${GIT_QUIET:+--quiet} ${cached:+--cached} ${recursive:+--recursive} "$@" git ${wt_prefix:+-C "$wt_prefix"} ${prefix:+--super-prefix "$prefix"} submodule--helper status ${GIT_QUIET:+--quiet} ${cached:+--cached} ${recursive:+--recursive} -- "$@"
} }
# #
# Sync remote urls for submodules # Sync remote urls for submodules
@ -1034,7 +1035,7 @@ cmd_sync()
esac esac
done done
git ${wt_prefix:+-C "$wt_prefix"} ${prefix:+--super-prefix "$prefix"} submodule--helper sync ${GIT_QUIET:+--quiet} ${recursive:+--recursive} "$@" git ${wt_prefix:+-C "$wt_prefix"} ${prefix:+--super-prefix "$prefix"} submodule--helper sync ${GIT_QUIET:+--quiet} ${recursive:+--recursive} -- "$@"
} }
cmd_absorbgitdirs() cmd_absorbgitdirs()

View File

@ -411,4 +411,14 @@ test_expect_success 'multi-argument command passed to foreach is not shell-evalu
test_cmp expected actual test_cmp expected actual
' '
test_expect_success 'option-like arguments passed to foreach commands are not lost' '
(
cd super &&
git submodule foreach "echo be --quiet" > ../expected &&
git submodule foreach echo be --quiet > ../actual
) &&
grep -sq -e "--quiet" expected &&
test_cmp expected actual
'
test_done test_done