threads / discuss / 30650

git 1.7.10.msysgit.1: different behaviour in ".gitignore" and ".git/info/exclude"

Subject: git 1.7.10.msysgit.1: different behaviour in ".gitignore" and ".git/info/exclude"

## tl;dr

3 messages between May 30, 2012 and May 30, 2012.

replies: 2people: 2as markdown or json

Thomas Wichern· May 30, 2012, 08:43 UTC · lore
Hi,

I noticed the following difference when using the pattern "/(*)/" (ignore all directories where the name is enclosed in parenthesis)

If you have a ".gitignore" - file that contains the pattern "/(*)/", a directory that matches the pattern is ignored completely.

If you put the same pattern into the ".git/info/exclude" - file, the pattern does not work - these directories still show up.

I expected that all directories anywhere the repository that match the pattern to be ignored.

Am I doing something wrong? Is the pattern not correct?

Horrido, Thomas

--- git version 1.7.10.msysgit.1 Windows 7 Pro

Johannes Sixt· May 30, 2012, 10:28 UTC · re: Thomas Wichern · lore

Re: git 1.7.10.msysgit.1: different behaviour in ".gitignore" and ".git/info/exclude"

Am 5/30/2012 10:43, schrieb Thomas Wichern:
Show 8 quoted lines
> If you have a ".gitignore" - file that contains the pattern "/(*)/", a
> directory that matches the pattern is ignored completely.
> 
> If you put the same pattern into the ".git/info/exclude" - file, the
> pattern does not work - these directories still show up.
> 
> I expected that all directories anywhere the repository that match the
> pattern to be ignored.

The first slash in the pattern means: Match only in this directory, not in subdirectories. For patterns in .git/info/exclude, "this directory" is the top-level of the repository.

> Am I doing something wrong? Is the pattern not correct?
Perhaps you need "(*)/", i.e., without the first slash.
-- Hannes
Thomas Wichern· May 30, 2012, 10:52 UTC · re: Johannes Sixt · lore

Re: git 1.7.10.msysgit.1: different behaviour in ".gitignore" and ".git/info/exclude"

Hi Hannes,

thanks a lot - it was my fault and you're right. It works with "(*)/" very well!

Horrido, Thomas

Show 9 quoted lines
> Am 5/30/2012 10:43, schrieb Thomas Wichern:
>> If you have a ".gitignore" - file that contains the pattern "/(*)/", a
>> directory that matches the pattern is ignored completely.
>> 
>> If you put the same pattern into the ".git/info/exclude" - file, the
>> pattern does not work - these directories still show up.
>> 
>> I expected that all directories anywhere the repository that match the
>> pattern to be ignored.
> The first slash in the pattern means: Match only in this directory, not in
> subdirectories. For patterns in .git/info/exclude, "this directory" is the
> top-level of the repository.
>> Am I doing something wrong? Is the pattern not correct?
> Perhaps you need "(*)/", i.e., without the first slash.
> -- Hannes

← back to recent threads