Browse Source
We should prevent nonsense paths from entering the index in the first place, as they can cause confusing results if they are ever checked out into the working tree. We already do so, but we never tested it. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
Jeff King
10 years ago
committed by
Junio C Hamano
1 changed files with 32 additions and 0 deletions
@ -0,0 +1,32 @@
@@ -0,0 +1,32 @@
|
||||
#!/bin/sh |
||||
|
||||
test_description='check that read-tree rejects confusing paths' |
||||
. ./test-lib.sh |
||||
|
||||
test_expect_success 'create base tree' ' |
||||
echo content >file && |
||||
git add file && |
||||
git commit -m base && |
||||
blob=$(git rev-parse HEAD:file) && |
||||
tree=$(git rev-parse HEAD^{tree}) |
||||
' |
||||
|
||||
while read path; do |
||||
test_expect_success "reject $path at end of path" ' |
||||
printf "100644 blob %s\t%s" "$blob" "$path" >tree && |
||||
bogus=$(git mktree <tree) && |
||||
test_must_fail git read-tree $bogus |
||||
' |
||||
|
||||
test_expect_success "reject $path as subtree" ' |
||||
printf "040000 tree %s\t%s" "$tree" "$path" >tree && |
||||
bogus=$(git mktree <tree) && |
||||
test_must_fail git read-tree $bogus |
||||
' |
||||
done <<-\EOF |
||||
. |
||||
.. |
||||
.git |
||||
EOF |
||||
|
||||
test_done |
Loading…
Reference in new issue