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 80bffaf7fb
commit db33af0a7f
2 changed files with 14 additions and 3 deletions

View File

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

View File

@ -131,7 +131,7 @@ test_expect_success \
'validate git-rev-list output.' \ 'validate git-rev-list output.' \
'diff current expected' '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 && git rm --cached file &&
mv file elif && 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 commit -m "Partial: remove file" file &&
git diff-tree --name-status HEAD^ HEAD >current && 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 test_done