]> git.ipfire.org Git - thirdparty/git.git/commit
Merge branch 'jk/pathspec-magic-disambiguation'
authorJunio C Hamano <gitster@pobox.com>
Mon, 19 Jun 2017 19:38:42 +0000 (12:38 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 19 Jun 2017 19:38:43 +0000 (12:38 -0700)
commit32e0da583f70fe1406268217befd61e3f515505f
tree46a592c02b69bc5ff791eb076140f045ecfc96de
parent97e2ff464302565877a00b8a9aa6a2d85bd1445e
parent2cb47ab6958192a4b4b3b0616b2ab37f6680547f
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
setup.c