summaryrefslogtreecommitdiff
path: root/t/t1450-fsck.sh
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2012-11-28 02:27:37 (GMT)
committerJunio C Hamano <gitster@pobox.com>2012-11-28 18:41:08 (GMT)
commit5d34a4359d51b44483a1e62dc8a1f6ec686c8b6f (patch)
treee8918358cd5d36e7382e702f35e253b1892eab41 /t/t1450-fsck.sh
parent7e2010537e96d0a1144520222f20ba1dc3d61441 (diff)
downloadgit-5d34a4359d51b44483a1e62dc8a1f6ec686c8b6f.zip
git-5d34a4359d51b44483a1e62dc8a1f6ec686c8b6f.tar.gz
git-5d34a4359d51b44483a1e62dc8a1f6ec686c8b6f.tar.bz2
fsck: warn about '.' and '..' in trees
A tree with meta-paths like '.' or '..' does not work well with git; the index will refuse to load it or check it out to the filesystem (and even if we did not have that safety, it would look like we were overwriting an untracked directory). For the same reason, it is difficult to create such a tree with regular git. Let's warn about these dubious entries during fsck, just in case somebody has created a bogus tree (and this also lets us prevent them from propagating when transfer.fsckObjects is set). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t1450-fsck.sh')
-rwxr-xr-xt/t1450-fsck.sh16
1 files changed, 16 insertions, 0 deletions
diff --git a/t/t1450-fsck.sh b/t/t1450-fsck.sh
index 08aa24c..0b5c30b 100755
--- a/t/t1450-fsck.sh
+++ b/t/t1450-fsck.sh
@@ -237,4 +237,20 @@ test_expect_success 'fsck notices submodule entry pointing to null sha1' '
)
'
+test_expect_success 'fsck notices "." and ".." in trees' '
+ (
+ git init dots &&
+ cd dots &&
+ blob=$(echo foo | git hash-object -w --stdin) &&
+ tab=$(printf "\\t") &&
+ git mktree <<-EOF &&
+ 100644 blob $blob$tab.
+ 100644 blob $blob$tab..
+ EOF
+ git fsck 2>out &&
+ cat out &&
+ grep "warning.*\\." out
+ )
+'
+
test_done