From: Junio C Hamano Date: Mon, 19 Jun 2017 19:38:42 +0000 (-0700) Subject: Merge branch 'jk/pathspec-magic-disambiguation' X-Git-Tag: v2.14.0-rc0~89 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/32e0da583f70fe1406268217befd61e3f515505f Merge branch 'jk/pathspec-magic-disambiguation' The convention for a command line is to follow "git cmdname --options" with revisions followed by an optional "--" disambiguator and then finally pathspecs. When "--" is not there, we make sure early ones are all interpretable as revs (and do not look like paths) and later ones are the other way around. A pathspec with "magic" (e.g. ":/p/a/t/h" that matches p/a/t/h from the top-level of the working tree, no matter what subdirectory you are working from) are conservatively judged as "not a path", which required disambiguation more often. The command line parser learned to say "it's a pathspec" a bit more often when the syntax looks like so. * jk/pathspec-magic-disambiguation: verify_filename(): flip order of checks verify_filename(): treat ":(magic)" as a pathspec check_filename(): handle ":^" path magic check_filename(): use skip_prefix check_filename(): refactor ":/" handling t4208: add check for ":/" without matching file --- 32e0da583f70fe1406268217befd61e3f515505f