Re: [PATCH V3 1/2] git-apply: add --quiet flag
From: Junio C Hamano <hidden>
Date: 2021-12-13 22:30:23
Jerry Zhang [off-list ref] writes:
quoted hunk
Replace OPT_VERBOSE with OPT_VERBOSITY. This adds a --quiet flag to "git apply" so the user can turn down the verbosity. Signed-off-by: Jerry Zhang <redacted> --- V2->V3 - Reorganized into a patch series to capture dependencies between 2 git apply changes. Documentation/git-apply.txt | 7 ++++++- apply.c | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-)diff --git a/Documentation/git-apply.txt b/Documentation/git-apply.txt index aa1ae56a25..a32ad64718 100644 --- a/Documentation/git-apply.txt +++ b/Documentation/git-apply.txt@@ -14,11 +14,11 @@ SYNOPSIS [--allow-binary-replacement | --binary] [--reject] [-z] [-p<n>] [-C<n>] [--inaccurate-eof] [--recount] [--cached] [--ignore-space-change | --ignore-whitespace] [--whitespace=(nowarn|warn|fix|error|error-all)] [--exclude=<path>] [--include=<path>] [--directory=<root>] - [--verbose] [--unsafe-paths] [<patch>...] + [--verbose | --quiet] [--unsafe-paths] [<patch>...] DESCRIPTION ----------- Reads the supplied diff output (i.e. "a patch") and applies it to files. When running from a subdirectory in a repository, patched paths@@ -226,10 +226,15 @@ behavior: --verbose:: Report progress to stderr. By default, only a message about the current patch being applied will be printed. This option will cause additional information to be reported. +-q:: +--quiet:: + Suppress stderr output. Messages about patch status and progress + will not be printed. + --recount:: Do not trust the line counts in the hunk headers, but infer them by inspecting the patch (e.g. after editing the patch without adjusting the hunk headers appropriately).diff --git a/apply.c b/apply.c index 64b226acd9..9f00f882a2 100644 --- a/apply.c +++ b/apply.c@@ -5071,11 +5071,11 @@ int apply_parse_options(int argc, const char **argv, N_("don't expect at least one line of context")), OPT_BOOL(0, "reject", &state->apply_with_reject, N_("leave the rejected hunks in corresponding *.rej files")), OPT_BOOL(0, "allow-overlap", &state->allow_overlap, N_("allow overlapping hunks")), - OPT__VERBOSE(&state->apply_verbosity, N_("be verbose")), + OPT__VERBOSITY(&state->apply_verbosity), OPT_BIT(0, "inaccurate-eof", options, N_("tolerate incorrectly detected missing new-line at the end of file"), APPLY_OPT_INACCURATE_EOF), OPT_BIT(0, "recount", options, N_("do not trust the line counts in the hunk headers"),
It is a bit surprising that this is the only change that is needed.
apply.h has
enum apply_verbosity {
verbosity_silent = -1,
verbosity_normal = 0,
verbosity_verbose = 1
};
but OPT__VERBOSITY() cna take more than one --verbose or --quiet to
tune the verbosity level beyond the 1 and -1 limit.
I looked at the output from
$ git grep -A3 -e '\([.]\|->\)apply_verbosity'
and made sure that there is no exact comparison with
verbosity_silent or verbosity_verbose, which means we are OK.
It would have saved time to have a note in the proposed log message
that the author already audited and found that the existing code is
ready to accept verbosity values outside the "enum apply_verbosity"
range.
Thanks, will queue.