Bug: git ls-files and ignored directories
- From
- Christoph Buchner <bilderbuchi@phononoia.at>
- Date
- May 30, 2012, 10:22 UTC
- Message-ID
- <20120530102218.0625CFC006A@dd24126.kasserver.com>
Hi!
I think I've been bitten by a bug in git ls-files - committed directories (and files therein) which are matched by a "dir/" gitignore rule are not shown by "git ls-files --exclude-standard -i", although they should be. Matched files are shown.
I've found a very brief discussion on this mailing list from March 2011 about this, including a repro procedure which still is valid today, at http://marc.info/?l=git&m=129926031808376&w=4
Is that a known/in progress bug? If yes, (when) can a fix be expected? How can I work around this in the meantime? If it's not a bug, how do you do this properly? My original problem was that I want to list files which have been committed to git but match an existing gitignore pattern. Richard Hansen has written a very nice alias for that (http://stackoverflow.com/a/9370094/599884, with some discussion of this bug in the comments), but due to the present bug this does not work totally correctly.
Having a built-in git feature for this would be great, btw ("git ls-files --committed-but-ignored"? :-)). Do I have to submit a separate feature request?thanks, Christoph
p.s.: The repro procedure from the linked list discussion:
Show 9 quoted lines
> $ mkdir test > $ cd test > $ git init > $ mkdir testdir > $ touch testdir/test > $ git add testdir/test > $ git commit -m "add test" > $ echo "testdir/" > .gitignore > $ git ls-files --exclude-standard -i