Browse Source

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>
maint
Junio C Hamano 17 years ago
parent
commit
db33af0a7f
  1. 2
      git-commit.sh
  2. 15
      t/t7501-commit.sh

2
git-commit.sh

@ -404,7 +404,7 @@ t,) @@ -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

15
t/t7501-commit.sh

@ -131,7 +131,7 @@ test_expect_success \ @@ -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)' ' @@ -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)' ' @@ -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

Loading…
Cancel
Save