git-commit: partial commit of paths only removed from the index

Because a partial commit is meant to be a way to ignore what are
staged in the index, "git rm --cached A && git commit A" should
just record what is in A on the filesystem.  The previous patch
made the command sequence to barf, saying that A has not been
added yet.  This fixes it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Junio C Hamano 2007-09-14 16:53:58 -07:00
parent 64586e75af
commit cba8d48961
2 changed files with 14 additions and 3 deletions

View File

@ -404,7 +404,7 @@ t,)
(
GIT_INDEX_FILE="$NEXT_INDEX"
export GIT_INDEX_FILE
git update-index --remove --stdin
git update-index --add --remove --stdin
) || exit
;;
esac

View File

@ -131,7 +131,7 @@ test_expect_success \
'validate git-rev-list output.' \
'diff current expected'
test_expect_success 'partial commit that involve removal (1)' '
test_expect_success 'partial commit that involves removal (1)' '
git rm --cached file &&
mv file elif &&
@ -143,7 +143,7 @@ test_expect_success 'partial commit that involve removal (1)' '
'
test_expect_success 'partial commit that involve removal (2)' '
test_expect_success 'partial commit that involves removal (2)' '
git commit -m "Partial: remove file" file &&
git diff-tree --name-status HEAD^ HEAD >current &&
@ -152,4 +152,15 @@ test_expect_success 'partial commit that involve removal (2)' '
'
test_expect_success 'partial commit that involves removal (3)' '
git rm --cached elif &&
echo elif >elif &&
git commit -m "Partial: modify elif" elif &&
git diff-tree --name-status HEAD^ HEAD >current &&
echo "M elif" >expected &&
diff expected current
'
test_done