Thread (20 messages) flat view 20 messages, 6 authors, 2016-06-15

Re: [RFC PATCH v3 7/8] Support sparse checkout in unpack_trees() and read-tree

From: Nguyen Thai Ngoc Duy <hidden>
Date: 2016-06-15 22:47:13

On Wed, Aug 12, 2009 at 5:03 AM, [off-list ref] wrote:
On Tue, Aug 11, 2009 at 2:38 PM, Jakub Narebski[off-list ref] wrote:
quoted
skillzero@gmail.com writes:
quoted
2009/8/11 Nguyễn Thái Ngọc Duy [off-list ref]:
quoted
quoted
[1] .git/info/sparse has the same syntax as .git/info/exclude. Files
that match the patterns will be set as CE_VALID.
Does this mean it will only support excluding paths you don't want
rather than letting you only include paths you do want?
Errr... what I read is that paths set by .git/info/sparse would be
excluded from checkout (marked as assume-unchanged / CE_VALID).

But if it is the same mechanism as gitignore, then you can use !
prefix to set files (patterns) to include, e.g.

 !Documentation/
 *

(I think rules are processed top-down, first matching wins).
I wasn't sure because the .gitignore negation stuff mentions negating
a previously ignored pattern. But for sparse patterns, there likely
wouldn't be a previous pattern.
No problem. We put pattern '*' at top (match everything). Previous
pattern issue solved.
Include patterns are a little
different in that if there are no include patterns (but maybe some
exclude patterns), I think the expectation is that everything will be
included (minus excludes), but if you have some include patterns then
only those paths will be included (minus any excludes).
Let's say you want to include foo/ and bar/ only, this should work:

*
!foo/
!bar/

The evaluating order is from bottom up. When it first matches 'bar/',
because it a negate pattern, it returns "no don't match" and stops.
When it matches neither foo/ nor bar/ then it will be caught by '*'
and return "yes it matches" - that means "ignored" from checkout area.
In the end only foo/* and bar/* survive.

I think it's as easy as writing exclude patterns once you figure out '*'.
-- 
Duy
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help