Re: [PATCH V3 1/2] git-apply: add --quiet flag
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Dec 13, 2021, 22:30 UTC
- Message-ID
- <xmqqmtl49lzd.fsf@gitster.g>
- In-Reply-To
- <20211213220327.16042-1-jerry@skydio.com>
Jerry Zhang <jerry@skydio.com> writes:
Show 65 quoted lines
> 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 <jerry@skydio.com>
> ---
> 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.