Re: Git 2.7.0 gitignore behaviour regression
From: brian m. carlson <hidden>
Date: 2016-06-15 23:07:39
Attachments
- signature.asc [application/pgp-signature] 836 bytes
From: brian m. carlson <hidden>
Date: 2016-06-15 23:07:39
On Tue, Jan 05, 2016 at 10:06:02AM -0500, Jeff King wrote:
Thanks for giving a clear example. This bisects to Duy's 57534ee (dir.c:
don't exclude whole dir prematurely if neg pattern may match,
2015-09-21). AFAICT (and I don't recall looking over this patch
previously), what you are seeing is the intended effect of the patch.
Your final line unignores stuff inside of "a", so we're reporting it (if you gave
"-uall", you'd see the actual file "a/b"). Older versions of git
generally optimized out looking inside "a/" at all. This created a
hassle when people wanted to do things like:
a/
!a/precious-file
in their .gitignore.I think there's still a bug in the code here. If you do git init mkdir -p base/a/ printf 'base/a/\n!base/a/b.txt\n' >.gitignore git add .gitignore git commit -m 'Add .gitignore' >base/a/b.txt git add base/a/b.txt git commit -m 'Add base/a/b.txt' >base/a/c.txt git status --porcelain git status outputs base/a/c.txt as unknown, when it should be ignored. We saw this in a repository at $DAYJOB. -- brian m. carlson / brian with sandals: Houston, Texas, US +1 832 623 2791 | https://www.crustytoothpaste.net/~bmc | My opinion only OpenPGP: RSA v4 4096b: 88AC E9B2 9196 305B A994 7552 F1BA 225C 0223 B187