Re: [PATCH RFC] Convert ce_path_match() use to match_pathspec()
- From
Nguyen Thai Ngoc Duy <pclouds@gmail.com>
- Date
- May 26, 2009, 11:04 UTC
- Message-ID
- <fcaeb9bf0905260404h3eb35355p4fec33bc1912ce9b@mail.gmail.com>
- In-Reply-To
- <7voctgvnic.fsf@alter.siamese.dyndns.org>
2009/5/26 Junio C Hamano <gitster@pobox.com>:
Show 8 quoted lines
> Nguyễn Thái Ngọc Duy <pclouds@gmail.com> writes: > >> For some reasons diff code did not get converted to use >> match_pathspec(). So diff commands do not understand wildcards. > > ce_path_match() is not just about diffs; there may be places that do not > expect pathspecs to match cruft with globs. Have you checked all the > callsites and they are Ok with globbing?
I'm pretty sure except preload-index. I have checked again, all read_cache_preload() callsites seem to prefer files and leading path over globbing.
Show 8 quoted lines
> I think using glob in diff-files should be Ok, but that would make it > inconsistent with diff-tree (and possibly diff-index but I didn't check). > The correct operation of diff-tree (and path pruning in "git log" family) > heavily relies on an early-exit optimization not to recurse into a > directory when we can detect that none of the paths in that directory will > ever match any of the given pathspecs, and this is done based on the > non-globbing (iow "leading path") semantics; you need to be extra careful > about this.
Now I know the reason. Thanks.
-- Duy