diff options
author | Matthieu Moy <Matthieu.Moy@imag.fr> | 2007-07-13 19:41:38 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-07-13 23:52:46 -0700 |
commit | bdecd9d41b3528e17aea2290344c584412e2424e (patch) | |
tree | e452049ca2a9cd38462831f73ea7a19fdff760e0 /t | |
parent | 1701872fc2cfc48c740175848c1ef6fc10eb0e10 (diff) | |
download | git-bdecd9d41b3528e17aea2290344c584412e2424e.tar.gz git-bdecd9d41b3528e17aea2290344c584412e2424e.tar.xz |
More permissive "git-rm --cached" behavior without -f.
In the previous behavior, "git-rm --cached" (without -f) had the same
restriction as "git-rm". This forced the user to use the -f flag in
situations which weren't actually dangerous, like:
$ git add foo # oops, I didn't want this
$ git rm --cached foo # back to initial situation
Previously, the index had to match the file *and* the HEAD. With
--cached, the index must now match the file *or* the HEAD. The behavior
without --cached is unchanged, but provides better error messages.
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't')
-rwxr-xr-x | t/t3600-rm.sh | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/t/t3600-rm.sh b/t/t3600-rm.sh index 13a461f31..5c001aa48 100755 --- a/t/t3600-rm.sh +++ b/t/t3600-rm.sh @@ -46,6 +46,40 @@ test_expect_success \ 'git rm --cached foo' test_expect_success \ + 'Test that git rm --cached foo succeeds if the index matches the file' \ + 'echo content > foo + git add foo + git rm --cached foo' + +test_expect_success \ + 'Test that git rm --cached foo succeeds if the index matches the file' \ + 'echo content > foo + git add foo + git commit -m foo + echo "other content" > foo + git rm --cached foo' + +test_expect_failure \ + 'Test that git rm --cached foo fails if the index matches neither the file nor HEAD' \ + 'echo content > foo + git add foo + git commit -m foo + echo "other content" > foo + git add foo + echo "yet another content" > foo + git rm --cached foo' + +test_expect_success \ + 'Test that git rm --cached -f foo works in case where --cached only did not' \ + 'echo content > foo + git add foo + git commit -m foo + echo "other content" > foo + git add foo + echo "yet another content" > foo + git rm --cached -f foo' + +test_expect_success \ 'Post-check that foo exists but is not in index after git rm foo' \ '[ -f foo ] && ! git ls-files --error-unmatch foo' |