diff options
author | Junio C Hamano <gitster@pobox.com> | 2017-11-06 13:11:29 +0900 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-11-06 13:11:29 +0900 |
commit | 728c57380338eed1aaad6047046ca71826e8066c (patch) | |
tree | d4b2f8372dbb16a7bbca29e73cb682f495cc140b | |
parent | Merge branch 'jk/rebase-i-exec-gitdir-fix' (diff) | |
parent | pathspec: die on empty strings as pathspec (diff) | |
download | tgif-728c57380338eed1aaad6047046ca71826e8066c.tar.xz |
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
-rw-r--r-- | pathspec.c | 11 | ||||
-rwxr-xr-x | t/t0027-auto-crlf.sh | 2 | ||||
-rwxr-xr-x | t/t3600-rm.sh | 5 | ||||
-rwxr-xr-x | t/t3700-add.sh | 5 |
4 files changed, 9 insertions, 14 deletions
diff --git a/pathspec.c b/pathspec.c index cdefdc7cc0..82eb39cd67 100644 --- a/pathspec.c +++ b/pathspec.c @@ -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++; } diff --git a/t/t0027-auto-crlf.sh b/t/t0027-auto-crlf.sh index deb3ae7813..68108d956a 100755 --- a/t/t0027-auto-crlf.sh +++ b/t/t0027-auto-crlf.sh @@ -315,7 +315,7 @@ test_expect_success 'setup master' ' echo >.gitattributes && git checkout -b master && git add .gitattributes && - git commit -m "add .gitattributes" "" && + git commit -m "add .gitattributes" . && printf "\$Id: 0000000000000000000000000000000000000000 \$\nLINEONE\nLINETWO\nLINETHREE" >LF && printf "\$Id: 0000000000000000000000000000000000000000 \$\r\nLINEONE\r\nLINETWO\r\nLINETHREE" >CRLF && printf "\$Id: 0000000000000000000000000000000000000000 \$\nLINEONE\r\nLINETWO\nLINETHREE" >CRLF_mix_LF && diff --git a/t/t3600-rm.sh b/t/t3600-rm.sh index f8568f8841..81c6059a2d 100755 --- a/t/t3600-rm.sh +++ b/t/t3600-rm.sh @@ -858,9 +858,8 @@ test_expect_success 'rm files with two different errors' ' test_i18ncmp expect actual ' -test_expect_success 'rm empty string should invoke warning' ' - git rm -rf "" 2>output && - test_i18ngrep "warning: empty strings" output +test_expect_success 'rm empty string should fail' ' + test_must_fail git rm -rf "" ' test_done diff --git a/t/t3700-add.sh b/t/t3700-add.sh index 0aae21d698..2748805642 100755 --- a/t/t3700-add.sh +++ b/t/t3700-add.sh @@ -331,9 +331,8 @@ test_expect_success 'git add --dry-run --ignore-missing of non-existing file out test_i18ncmp expect.err actual.err ' -test_expect_success 'git add empty string should invoke warning' ' - git add "" 2>output && - test_i18ngrep "warning: empty strings" output +test_expect_success 'git add empty string should fail' ' + test_must_fail git add "" ' test_expect_success 'git add --chmod=[+-]x stages correctly' ' |