Subject: Re: [PATCH 2/3] add-patch: add diff.context command line overrides

From: Junio C Hamano <[email-masked]>
Date: Wed, 07 May 2025 13:25:56 -0700

Leon Michalak <[email-masked]> writes:

> I think I may be misunderstanding, so I'll elaborate on what I
> personally intended my documentation to mean.
>
> When I put in the documentation "implies --interactive/--patch" it
> reads to me as "this assumes you are also using either --interactive
> or --patch and that if you don't specify one or the other it will do
> nothing or possibly error (which is what I chose in the end, based on
> the initial discussion in a separate thread)". I didn't think it would
> read as "you must have both settings" or "if you don't specify these
> the command will assume it as if you had and effectively act as if you
> had".
>
> I'm not sure if the wording was confusing or it generally has
> different meanings to others so perhaps that might clarify at least
> what I intended :)

We use "imply" to mean quite a different thing from what you said in
the above explanation, and that is where my reaction came from.

We say "option A implies option B" only when the command behaves as
if the user gave option B when only option A is given (and without
giving B).  For example, "git commit --help" has

        `--short`::
                When doing a dry-run, give the output in the short-format. See
                linkgit:git-status[1] for details. Implies `--dry-run`.

The `--short` option does not make any sense when you are actually
creating a commit; if you say "git commit --short", the command
behaves as if you said "git commit --dry-run --short".

If something works only under certain condition, it seems we tend to
say "this only works when/with ...", so in this case, we would have
said "The -U<n> option is only effective for --interactive or --patch
mode of this command" to express what you meant to convey, I think.

Thanks.