Merge branch 'ex/deprecate-empty-pathspec-as-match-all'

The final step to make an empty string as a pathspec element
illegal.  We started this by first deprecating and warning a
pathspec that has such an element in 2.11 (Nov 2016).

Hopefully we can merge this down to the 'master' by the end of the
year?  A deprecation warning period that is about 1 year does not
sound too bad.

* ex/deprecate-empty-pathspec-as-match-all:
  pathspec: die on empty strings as pathspec
  t0027: do not use an empty string as a pathspec element
This commit is contained in:
Junio C Hamano
2017-11-06 13:11:29 +09:00
4 changed files with 9 additions and 14 deletions

View File

@ -532,7 +532,7 @@ void parse_pathspec(struct pathspec *pathspec,
{
struct pathspec_item *item;
const char *entry = argv ? *argv : NULL;
int i, n, prefixlen, warn_empty_string, nr_exclude = 0;
int i, n, prefixlen, nr_exclude = 0;
memset(pathspec, 0, sizeof(*pathspec));
@ -565,13 +565,10 @@ void parse_pathspec(struct pathspec *pathspec,
}
n = 0;
warn_empty_string = 1;
while (argv[n]) {
if (*argv[n] == '\0' && warn_empty_string) {
warning(_("empty strings as pathspecs will be made invalid in upcoming releases. "
"please use . instead if you meant to match all paths"));
warn_empty_string = 0;
}
if (*argv[n] == '\0')
die("empty string is not a valid pathspec. "
"please use . instead if you meant to match all paths");
n++;
}