aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2013-04-04 15:03:58 -0400
committerJunio C Hamano <gitster@pobox.com>2013-04-04 12:28:53 -0700
commit96ec8ee92aad52b6556e87d0166a7b9c4cd7c324 (patch)
treed6981aa8c30e895a8c5cb06910a363c79db3326a
parent9a6728d4d14a08791861a63b7567ee0b50e59f70 (diff)
downloadgit-96ec8ee92aad52b6556e87d0166a7b9c4cd7c324.tar.gz
git-96ec8ee92aad52b6556e87d0166a7b9c4cd7c324.tar.xz
t3600: test behavior of reverse-d/f conflict
The previous commit taught "rm" that it is safe to consider "d/f" removed when "d" has become a non-directory. This patch adds a test for the opposite: a file "d" that becomes a directory. In this case, "git rm" does need to complain, because we should not be removing arbitrary content under "d". Git already behaves correctly, but let's make sure that remains the case by protecting the behavior with a test. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xt/t3600-rm.sh12
1 files changed, 12 insertions, 0 deletions
diff --git a/t/t3600-rm.sh b/t/t3600-rm.sh
index 73772b279..a2e1a0396 100755
--- a/t/t3600-rm.sh
+++ b/t/t3600-rm.sh
@@ -647,4 +647,16 @@ test_expect_success SYMLINKS 'rm of d/f when d has become a dangling symlink' '
test_path_is_missing d
'
+test_expect_success 'rm of file when it has become a directory' '
+ rm -rf d &&
+ >d &&
+ git add d &&
+ rm -f d &&
+ mkdir d &&
+ >d/f &&
+ test_must_fail git rm d &&
+ git rev-parse --verify :d &&
+ test_path_is_file d/f
+'
+
test_done