Re: [PATCH 2/2] diff: document the pattern format for diff.orderFile
- From
- Richard Hansen <hansenr@google.com>
- Date
- Jan 11, 2017, 18:36 UTC
- Message-ID
- <2fb4296d-f084-4a76-44f3-7dc7d7cca7b1@google.com>
- In-Reply-To
- <xmqqwpe1o43k.fsf@gitster.mtv.corp.google.com>
On 2017-01-11 13:15, Junio C Hamano wrote:
Show 25 quoted lines
> Richard Hansen <hansenr@google.com> writes: > >> On 2017-01-10 21:46, Junio C Hamano wrote: >>> Richard Hansen <hansenr@google.com> writes: >>> >>>> I was looking at the code to see how the two file formats differed and >>>> noticed that match_order() doesn't set the WM_PATHNAME flag when it >>>> calls wildmatch(). That's unintentional (a bug), right? >>> >>> It has been that way from day one IIRC even before we introduced >>> wildmatch()---IOW it may be intentional that the current code that >>> uses wildmatch() does not use WM_PATHNAME. >> >> You are the original author (af5323e027 2005-05-30). Do you remember >> what your intention was? > > Yes. > > Back then we didn't even have wildmatch(), and used fnmatch() > instead, so forcing FNM_PATHNAME would have meant that people > wouldn't be able to say "foo*bar" to match "foo/other/bar"; with > wildmatch, "foo**bar" lets you defeat WM_PATHNAME so having > WM_PATHNAME always in effect is less of an issue, but with > fnmatch(), having FNM_PATHNAME always in effect has a lot of > downside.
Ah, that makes sense.
> > I'd expect that orderfile people have today will be broken and > require tweaking if you switched WM_PATHNAME on.
OK, so we don't want to turn on WM_PATHNAME unless we do it for a new major version.
I'll do another re-roll and document the non-WM_PATHNAME behavior. Perhaps I'll encourage users to prefer ** over * if they want to match slash (even though they are equivalent) so that migration is easier if we ever do turn on WM_PATHNAME.
-Richard