Re: git sparse checkout exclusions not working?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Apr 29, 2011 at 7:10 PM, Nguyen Thai Ngoc Duy <pclouds@xxxxxxxxx> wrote:
> On Wed, Apr 27, 2011 at 11:35 PM, Â<skillzero@xxxxxxxxx> wrote:
>> It seems like ! patterns in the sparse-checkout file don't exclude
>> individual files in a directory. Here's what I did:
>>
>> ...
>>
>> The "test1" directory was included, but "test1/file2.txt" wasn't
>> excluded even though I added a ! pattern for it. The test2 directory
>> was correctly excluded so that makes me think sparse was working in
>> general, but just not respecting the ! pattern in this case.
>>
>> Is this a bug or am I doing something wrong?
>
> I can reproduce it too. It looks like a regression from
> whole-directory matching. If a directory is matched, all files inside
> are considered "in". Let's see if I can come up with something this
> weekend.

sparse checkout rules are not the only ones falling for this trap.
.gitignore has the same problem:

pclouds@do /tmp/z $ cat .gitignore
t
!t/1
pclouds@do /tmp/z $ ls t
1  2  3
pclouds@do /tmp/z $ git init
Initialized empty Git repository in /tmp/z/.git/
pclouds@do /tmp/z $ ~/w/git/git add .
pclouds@do /tmp/z $ git ls-files
.gitignore

I wonder if we can convert struct exclude to struct pathspec and solve
the problem all at the same place. Granted .gitignore's '*' is
different from pathspec's '*' (ie. FNM_PATHNAME vs no flag to
fnmatch), but struct pathspec can be taught to do it both ways and the
pathspec magic can expose FNM_PATHNAME to users too.
-- 
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


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]