Re: [PATCH] sparse-checkout.txt: new document with sparse-checkout directions
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Sep 26, 2022, 17:38 UTC
- Message-ID
- <xmqqwn9qox1z.fsf@gitster.g>
- In-Reply-To
- <pull.1367.git.1664064588846.gitgitgadget@gmail.com>
"Elijah Newren via GitGitGadget" <gitgitgadget@gmail.com> writes:
> + In the case of am and apply, those commands only operate on the > + working tree, so they are kind of in the same boat as stash.
"apply" does not touch the HEAD but it can touch the index; when it operates with the "--cached" or the "--index" option, it should not be considered as a working-tree-only command.
"am" is about recording what is in the patch as a commit.
> + Perhaps `git am` could run `git sparse-checkout reapply` > + automatically afterward and move into a category more similar to > + merge/rebase/cherry-pick, but it'd still be weird because it'd > + vivify files besides just conflicted ones when there are conflicts.
I do not particularly think it is so bad.
How would we handle the case where the user modifies paths outside the sparse specification and makes a commit out of the result, without using "am"? We should be consistent with that use case, i.e.
$ edit path/outside/sparse/specification
$ git add path/outside/sparse/specification
$ git commitDo we require some "Yes, I am aware that I need to widen my sparse specification to do this, because I am now stepping out of it, and I understand that my sparse specification becomes wider after doing this operation" confirmation with "add" or "commit"? If not, then I think "am" should silently widen just like these commands. If they do, then "am" should also require such an option. Perhaps call it "--widen-sparse" or whatever.
By the way, I like the term "sparse specification" very much, as we should worry about non-cone mode as well. Please use it consistently in this document after getting a concensus that it is a good phrase to use from others---I saw some other words used after "sparse" elsewhere in this patch.
> + In the case of ls-files, `git ls-files -t` is often used to see what > + is sparse and not, in which case restricting would not make sense.
I suspect that leaving it tree-wide would allow scripters come up with Porcelains that restricts to the sparse specification more easily.
Thanks.