Re: [PATCH] ls-files: fix overeager pathspec optimization
- From
Linus Torvalds <torvalds@linux-foundation.org>
- Date
- Jan 9, 2010, 00:24 UTC
- Message-ID
- <alpine.LFD.2.00.1001081619570.7821@localhost.localdomain>
- In-Reply-To
- <7v3a2gnnv2.fsf@alter.siamese.dyndns.org>
On Fri, 8 Jan 2010, Junio C Hamano wrote:
> > Since "git add" uses the exact same codepath to find the untracked files > that match the pathspecs, I expected the "fix" will make it complain about > "t/gomi" being ignored. Not so.
No. Since 't' is ignored, it won't even do a readdir() in there.
And since it didn't do a readdir() in there, it won't find any files in there to add to the ignored list.
And that's how the "git add" logic for "apparently ignored" files works: it looks at whether the list of ignored files is empty or not.
Show 5 quoted lines
> Actually, it does start ignoring t/gomi (the index does not have t/gomi > after the above sequence with the patch), but lack of the error message > makes it a rather unfortunate regression---it works as specified in the > sense that ignored paths are not added to the index unless --forced, but > it does so without telling the user about it.
I have this memory that _used_ to have a per-filename flag in "git add" that checked if that particular filename component was used or not. But now it just looks at 'dir->ignored_nr' and 'dir->ignored[]'.
[ Digging back in history.. Yes: commit e96980ef ]
Linus