git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2] git-apply.txt: update descriptions of --cached, --index

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 20, 2020, 23:57 UTC
Message-ID
<xmqq4kowc1ls.fsf@gitster.c.googlers.com>
In-Reply-To
<20200820231051.85134-1-ray@ameretat.dev>
"Raymond E. Pasco" <ray@ameretat.dev> writes:
Show 12 quoted lines
> The blurb for "--cached" says it implies "--index", but in reality
> "--cached" and "--index" are distinct modes with different behavior.
>
> Additionally, the descriptions of "--index" and "--cached" are somewhat
> unclear about what might be modified, and what "--index" looks for to
> determine that the index and working copy "match".
>
> Rewrite the blurbs for both options for clarity and accuracy.
>
> Signed-off-by: Raymond E. Pasco <ray@ameretat.dev>
> ---
> How's this for an updated wording?
s/blurbs?/description/
Show 25 quoted lines
>  Documentation/git-apply.txt | 20 ++++++++++----------
>  1 file changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/Documentation/git-apply.txt b/Documentation/git-apply.txt
> index b9aa39000f..91d9a8601c 100644
> --- a/Documentation/git-apply.txt
> +++ b/Documentation/git-apply.txt
> @@ -61,18 +61,18 @@ OPTIONS
>  	file and detects errors.  Turns off "apply".
>  
>  --index::
> -	When `--check` is in effect, or when applying the patch
> -	(which is the default when none of the options that
> -	disables it is in effect), make sure the patch is
> -	applicable to what the current index file records.  If
> -	the file to be patched in the working tree is not
> -	up to date, it is flagged as an error.  This flag also
> -	causes the index file to be updated.
> +	Apply the patch to both the index and the working tree (or
> +	merely check that it would apply cleanly to both if `--check` is
> +	in effect). Note that `--index` expects index entries and
> +	working tree copies for relevant paths to be identical (their
> +	contents and metadata such as file mode must match), and will
> +	raise an error if they are not, even if the patch would apply
> +	cleanly to both the index and the working tree in isolation.

I do not see why we want to stress the last part after ", even if". The safety mechanism insists on the working tree file and the index entry to be identical, and the location where in the file the difference is, is irrelevant, whether it is outside the area the incoming patch touches, or it overlaps.

I however am OK if your thrust is to stress the fact that the paths must be up to date. I think we can do so by making that the first thing readers would read about the option, e.g.

	After making sure the paths the patch touches in the working
	tree are up to date (i.e. have no modifications relative to
	their index entries), apply the patch both to the index
	entries and to the working tree files (or see if it applies
	cleanly, when `--check` is in effect).
Show 7 quoted lines
>  --cached::
> -	Apply a patch without touching the working tree. Instead take the
> -	cached data, apply the patch, and store the result in the index
> -	without using the working tree. This implies `--index`.
> +	Apply the patch to just the index, without touching the working
> +	tree. If `--check` is in effect, merely check that it would
> +	apply cleanly to the index entry.
This side looks good.
Thanks.
Previous: Raymond E. PascoNext: Raymond E. Pasco
Message 2 of 4 in “git-apply.txt: update descriptions of --cached, --index”
  1. git-apply.txt: update descriptions of --cached, --indexRaymond E. Pasco, Aug 20, 2020
  2. Junio C HamanoAug 20, 2020
  3. Raymond E. PascoAug 21, 2020
  4. Junio C HamanoAug 21, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.