views:

469

answers:

2

I'm encountering a weird issue with .gitignore on Windows.

I want git to ignore all .exe files, except those in the Dependencies folder (and all subfolders).

So I have:

.gitignore:

*.exe
!/Dependencies/**/*.exe

This, unfortunately, does not work.

Meanwhile, this does:

*.exe
!/Dependencies/folder/subfolder/*.exe

So I'm wondering, am I messing something up, or is this some kind of bug?

I'm running msysgit on Windows (Windows 7 x64) version 1.6.5.1-preview20091022

Thanks in advance for any input :)

+1  A: 

The .gitignore documentation says:

git treats the pattern as a shell glob suitable for consumption by fnmatch(3) with the FNM_PATHNAME flag

It's possible that fnmatch on your platform does not support ** in a path.

jdigital
@jdigital This is what I suspected (feared, really) as well. If this is the case, then it could potentially wreck havoc in cross-platform repos :(
Martin Aatmaa
+3  A: 

You could add a .gitignore file to the Dependencies folder with

*.exe

inside. The obvious downside is that ignore the specifications are scattered among several files now.

Bram Schoenmakers