On Wed, Aug 12, 2009 at 5:03 AM, <skillzero@xxxxxxxxx> wrote: > On Tue, Aug 11, 2009 at 2:38 PM, Jakub Narebski<jnareb@xxxxxxxxx> wrote: >> skillzero@xxxxxxxxx writes: >>> 2009/8/11 Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx>: >> >>> > [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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html