git add --intent-to-add: do not let an empty blob be committed by accident

Writing a tree out of an index with an "intent to add" entry is blocked.
This implies that you cannot "git commit" from such a state; however you
can still do "git commit -a" or "git commit $that_path".

Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Junio C Hamano
2008-11-28 19:56:34 -08:00
parent 388b2acd6e
commit 331fcb598e
5 changed files with 45 additions and 5 deletions

View File

@@ -32,5 +32,33 @@ test_expect_success 'intent to add does not clobber existing paths' '
! grep "$empty" actual
'
test_expect_success 'cannot commit with i-t-a entry' '
test_tick &&
git commit -a -m initial &&
git reset --hard &&
echo xyzzy >rezrov &&
echo frotz >nitfol &&
git add rezrov &&
git add -N nitfol &&
test_must_fail git commit
'
test_expect_success 'can commit with an unrelated i-t-a entry in index' '
git reset --hard &&
echo xyzzy >rezrov &&
echo frotz >nitfol &&
git add rezrov &&
git add -N nitfol &&
git commit -m partial rezrov
'
test_expect_success 'can "commit -a" with an i-t-a entry' '
git reset --hard &&
: >nitfol &&
git add -N nitfol &&
git commit -a -m all
'
test_done