author | Junio C Hamano <gitster@pobox.com> | |
Sat, 29 Nov 2008 03:55:25 +0000 (19:55 -0800) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Sat, 29 Nov 2008 03:58:24 +0000 (19:58 -0800) | ||
commit | 388b2acd6e649145d4368a10cf4df5f5bbbac2c2 | |
tree | 2981eb9ed66bb9841ac7fae18022326ddda48018 | tree | snapshot |
parent | 69530cb0c0d5f08dac9bedff56c164b7370f9931 | commit | diff |
git add --intent-to-add: fix removal of cached emptiness
This uses the extended index flag mechanism introduced earlier to mark
the entries added to the index via "git add -N" with CE_INTENT_TO_ADD.
The logic to detect an "intent to add" entry for the purpose of allowing
"git rm --cached $path" is tightened to check not just for a staged empty
blob, but with the CE_INTENT_TO_ADD bit. This protects an empty blob that
was explicitly added and then modified in the work tree from being dropped
with this sequence:
$ >empty
$ git add empty
$ echo "non empty" >empty
$ git rm --cached empty
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This uses the extended index flag mechanism introduced earlier to mark
the entries added to the index via "git add -N" with CE_INTENT_TO_ADD.
The logic to detect an "intent to add" entry for the purpose of allowing
"git rm --cached $path" is tightened to check not just for a staged empty
blob, but with the CE_INTENT_TO_ADD bit. This protects an empty blob that
was explicitly added and then modified in the work tree from being dropped
with this sequence:
$ >empty
$ git add empty
$ echo "non empty" >empty
$ git rm --cached empty
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-rm.c | diff | blob | history | |
cache.h | diff | blob | history | |
read-cache.c | diff | blob | history | |
t/t3600-rm.sh | diff | blob | history |