threads / bug / 27338

[BUG?] read_directory(), core.ignorecase and pathspec

Subject: [BUG?] read_directory(), core.ignorecase and pathspec

## tl;dr

3 messages between May 12, 2011 and May 13, 2011.

replies: 2people: 2as markdown or json

Nguyen Thai Ngoc Duy· May 12, 2011, 13:24 UTC · lore

I was looking at how read_directory() uses pathspec, and it seems that simplify_away(), the function that cuts out directories early if they're definitely outside given pathspec, does exact match (ie. memcmp) regardless core.ignorecase. This means "git add -- '*.c'" may not work as expected when core.ignorecase is on.

I haven't tested it though. Just heads up. If you care about core.ignorecase (I don't apparently), you can try it out.

The whole simplifying thing in read_directory() will eventually be replaced with real pathspec matching as we put more magic in pathspec.

-- 
Duy
Junio C Hamano· May 12, 2011, 16:04 UTC · re: Nguyen Thai Ngoc Duy · lore

Re: [BUG?] read_directory(), core.ignorecase and pathspec

Nguyen Thai Ngoc Duy <pclouds@gmail.com> writes:
Show 5 quoted lines
> I was looking at how read_directory() uses pathspec, and it seems that
> simplify_away(), the function that cuts out directories early if
> they're definitely outside given pathspec, does exact match (ie.
> memcmp) regardless core.ignorecase. This means "git add -- '*.c'" may
> not work as expected when core.ignorecase is on.

I don't think for '*.c' it would make any difference, but it is very plausible that 'frotz/*.c' will cull 'Frotz/anything' as "never going to match".

> The whole simplifying thing in read_directory() will eventually be
> replaced with real pathspec matching as we put more magic in pathspec.

That should be done not "as" but "before". Get the foundation right before going fancier.

Nguyen Thai Ngoc Duy· May 13, 2011, 00:39 UTC · re: Junio C Hamano · lore

Re: [BUG?] read_directory(), core.ignorecase and pathspec

On Thu, May 12, 2011 at 11:04 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 11 quoted lines
> Nguyen Thai Ngoc Duy <pclouds@gmail.com> writes:
>
>> I was looking at how read_directory() uses pathspec, and it seems that
>> simplify_away(), the function that cuts out directories early if
>> they're definitely outside given pathspec, does exact match (ie.
>> memcmp) regardless core.ignorecase. This means "git add -- '*.c'" may
>> not work as expected when core.ignorecase is on.
>
> I don't think for '*.c' it would make any difference, but it is very
> plausible that 'frotz/*.c' will cull 'Frotz/anything' as "never going to
> match".
Right, it only checks prefix.
Show 6 quoted lines
>> The whole simplifying thing in read_directory() will eventually be
>> replaced with real pathspec matching as we put more magic in pathspec.
>
> That should be done not "as" but "before". Get the foundation right before
> going fancier.
>
Right, again.
-- 
Duy

← back to recent threads