* git sparse checkout exclusions not working?
@ 2011-04-27 16:35 skillzero
2011-04-29 12:10 ` Nguyen Thai Ngoc Duy
0 siblings, 1 reply; 3+ messages in thread
From: skillzero @ 2011-04-27 16:35 UTC (permalink / raw)
To: Git Mailing List
It seems like ! patterns in the sparse-checkout file don't exclude
individual files in a directory. Here's what I did:
git init
mkdir test1
echo "test1" test1/file1.txt
echo "test2" test1/file2.txt
echo "test3" test1/file3.txt
mkdir test2
echo "test2" test2/file1.txt
echo "test2" test2/file2.txt
echo "test2" test2/file3.txt
git add .
git commit -m "test"
git config core.sparseCheckout true
echo 'test1/' > .git/info/sparse-checkout
echo '!test1/file2.txt' >> .git/info/sparse-checkout
git checkout master --
The end result is like this:
test1
test1/file1.txt
test1/file2.txt
test1/file3.txt
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?
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: git sparse checkout exclusions not working?
2011-04-27 16:35 git sparse checkout exclusions not working? skillzero
@ 2011-04-29 12:10 ` Nguyen Thai Ngoc Duy
2011-04-30 10:06 ` Nguyen Thai Ngoc Duy
0 siblings, 1 reply; 3+ messages in thread
From: Nguyen Thai Ngoc Duy @ 2011-04-29 12:10 UTC (permalink / raw)
To: skillzero; +Cc: Git Mailing List
On Wed, Apr 27, 2011 at 11:35 PM, <skillzero@gmail.com> 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.
--
Duy
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: git sparse checkout exclusions not working?
2011-04-29 12:10 ` Nguyen Thai Ngoc Duy
@ 2011-04-30 10:06 ` Nguyen Thai Ngoc Duy
0 siblings, 0 replies; 3+ messages in thread
From: Nguyen Thai Ngoc Duy @ 2011-04-30 10:06 UTC (permalink / raw)
To: Git Mailing List; +Cc: skillzero, Junio C Hamano
On Fri, Apr 29, 2011 at 7:10 PM, Nguyen Thai Ngoc Duy <pclouds@gmail.com> wrote:
> On Wed, Apr 27, 2011 at 11:35 PM, <skillzero@gmail.com> 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
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2011-04-30 10:07 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-04-27 16:35 git sparse checkout exclusions not working? skillzero
2011-04-29 12:10 ` Nguyen Thai Ngoc Duy
2011-04-30 10:06 ` Nguyen Thai Ngoc Duy
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).