Re: [PATCH RFC] Convert ce_path_match() use to match_pathspec()
- From
Junio C Hamano <gitster@pobox.com>
- Date
- May 25, 2009, 22:14 UTC
- Message-ID
- <7voctgvnic.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <1243240924-5981-1-git-send-email-pclouds@gmail.com>
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 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.