Merge branch 'gt/add-u-commit-i-pathspec-check'
"git add -u <pathspec>" and "git commit [-i] <pathspec>" did not diagnose a pathspec element that did not match any files in certain situations, unlike "git add <pathspec>" did. * gt/add-u-commit-i-pathspec-check: builtin/add: error out when passing untracked path with -u builtin/commit: error out when passing untracked path with -i revision: optionally record matches with pathspec elements
This commit is contained in:
@ -65,6 +65,16 @@ test_expect_success 'update did not touch untracked files' '
|
||||
test_must_be_empty out
|
||||
'
|
||||
|
||||
test_expect_success 'error out when passing untracked path' '
|
||||
git reset --hard &&
|
||||
echo content >>baz &&
|
||||
echo content >>top &&
|
||||
test_must_fail git add -u baz top 2>err &&
|
||||
test_grep -e "error: pathspec .baz. did not match any file(s) known to git" err &&
|
||||
git diff --cached --name-only >actual &&
|
||||
test_must_be_empty actual
|
||||
'
|
||||
|
||||
test_expect_success 'cache tree has not been corrupted' '
|
||||
|
||||
git ls-files -s |
|
||||
|
@ -101,22 +101,8 @@ test_expect_success 'fail to commit untracked file (even with --include/--only)'
|
||||
test_must_fail git commit --only -m "baz" baz 2>err &&
|
||||
test_grep -e "$error" err &&
|
||||
|
||||
# TODO: as for --include, the below command will fail because
|
||||
# nothing is staged. If something was staged, it would not fail
|
||||
# even though the provided pathspec does not match any tracked
|
||||
# path. (However, the untracked paths that match the pathspec are
|
||||
# not committed and only the staged changes get committed.)
|
||||
# In either cases, no error is returned to stderr like in (--only
|
||||
# and without --only/--include) cases. In a similar manner,
|
||||
# "git add -u baz" also does not error out.
|
||||
#
|
||||
# Therefore, the below test is just to document the current behavior
|
||||
# and is not an endorsement to the current behavior, and we may
|
||||
# want to fix this. And when that happens, this test should be
|
||||
# updated accordingly.
|
||||
|
||||
test_must_fail git commit --include -m "baz" baz 2>err &&
|
||||
test_must_be_empty err
|
||||
test_grep -e "$error" err
|
||||
'
|
||||
|
||||
test_expect_success 'setup: non-initial commit' '
|
||||
|
Reference in New Issue
Block a user