From: Junio C Hamano Date: Mon, 27 Jan 2020 18:47:46 GMT Subject: Re: Bug or unexpected behaviour in git show :a\b Message-ID: In-Reply-To: <20200125000051.GA566074@coredump.intra.peff.net> Jeff King writes: > Subject: verify_filename(): handle backslashes in "wildcards are pathspecs" rule > > Commit 28fcc0b71a (pathspec: avoid the need of "--" when wildcard is > used, 2015-05-02) allowed: > > git rev-parse '*.c' > > without the double-dash. But the rule it uses to check for wildcards > actually looks for any glob special. This is overly liberal, as it means > that a pattern that doesn't actually do any wildcard matching, like > "a\b", will be considered a pathspec. > > If you do have such a file on disk, that's presumably what you wanted. > But if you don't, the results are confusing: rather than say "there's no > such path a\b", we'll quietly accept it as a pathspec which very likely > matches nothing (or at least not what you intended). Likewise, looking > for path "a\*b" doesn't expand the search at all; it would only find a > single entry, "a*b". > > This commit switches the rule to trigger only when glob metacharacters > would expand the search, meaning both of those cases will now report an > error (you can still disambiguate using "--", of course; we're just > tightening the DWIM heuristic). Makes sense. Thanks.