Re: [PATCH v5 08/17] sparse-checkout: add 'cone' mode
- From
SZEDER Gábor <szeder.dev@gmail.com>
- Date
- Nov 19, 2019, 17:36 UTC
- Message-ID
- <20191119173643.GJ23183@szeder.dev>
- In-Reply-To
- <121d878882609907cc8d13f9d76f2414b15618be.1571666187.git.gitgitgadget@gmail.com>
On Mon, Oct 21, 2019 at 01:56:17PM +0000, Derrick Stolee via GitGitGadget wrote:
Show 49 quoted lines
> diff --git a/Documentation/git-sparse-checkout.txt b/Documentation/git-sparse-checkout.txt > index f794d4797a..3931e4f2ad 100644 > --- a/Documentation/git-sparse-checkout.txt > +++ b/Documentation/git-sparse-checkout.txt > @@ -92,6 +92,56 @@ using negative patterns. For example, to remove the file `unwanted`: > ---------------- > > > +## CONE PATTERN SET > + > +The full pattern set allows for arbitrary pattern matches and complicated > +inclusion/exclusion rules. These can result in O(N*M) pattern matches when > +updating the index, where N is the number of patterns and M is the number > +of paths in the index. To combat this performance issue, a more restricted > +pattern set is allowed when `core.spareCheckoutCone` is enabled. > + > +The accepted patterns in the cone pattern set are: > + > +1. *Recursive:* All paths inside a directory are included. > + > +2. *Parent:* All files immediately inside a directory are included. > + > +In addition to the above two patterns, we also expect that all files in the > +root directory are included. If a recursive pattern is added, then all > +leading directories are added as parent patterns. > + > +By default, when running `git sparse-checkout init`, the root directory is > +added as a parent pattern. At this point, the sparse-checkout file contains > +the following patterns: > + > +``` > +/* > +!/*/ > +``` > + > +This says "include everything in root, but nothing two levels below root." > +If we then add the folder `A/B/C` as a recursive pattern, the folders `A` and > +`A/B` are added as parent patterns. The resulting sparse-checkout file is > +now > + > +``` > +/* > +!/*/ > +/A/ > +!/A/*/ > +/A/B/ > +!/A/B/*/ > +/A/B/C/ > +```
This is a man page, not markdown. Those ## and ``` don't look as expected in the generated documentation.