Sync with v2.1.4
* maint-2.1: Git 2.1.4 Git 2.0.5 Git 1.9.5 Git 1.8.5.6 fsck: complain about NTFS ".git" aliases in trees read-cache: optionally disallow NTFS .git variants path: add is_ntfs_dotgit() helper fsck: complain about HFS+ ".git" aliases in trees read-cache: optionally disallow HFS+ .git variants utf8: add is_hfs_dotgit() helper fsck: notice .git case-insensitively t1450: refactor ".", "..", and ".git" fsck tests verify_dotfile(): reject .git case-insensitively read-tree: add tests for confusing paths like ".." and ".git" unpack-trees: propagate errors adding entries to the index
This commit is contained in:
@ -309,36 +309,41 @@ 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_expect_success 'fsck notices ".git" in trees' '
|
||||
(
|
||||
git init dotgit &&
|
||||
cd dotgit &&
|
||||
blob=$(echo foo | git hash-object -w --stdin) &&
|
||||
tab=$(printf "\\t") &&
|
||||
git mktree <<-EOF &&
|
||||
100644 blob $blob$tab.git
|
||||
EOF
|
||||
git fsck 2>out &&
|
||||
cat out &&
|
||||
grep "warning.*\\.git" out
|
||||
)
|
||||
'
|
||||
while read name path pretty; do
|
||||
while read mode type; do
|
||||
: ${pretty:=$path}
|
||||
test_expect_success "fsck notices $pretty as $type" '
|
||||
(
|
||||
git init $name-$type &&
|
||||
cd $name-$type &&
|
||||
echo content >file &&
|
||||
git add file &&
|
||||
git commit -m base &&
|
||||
blob=$(git rev-parse :file) &&
|
||||
tree=$(git rev-parse HEAD^{tree}) &&
|
||||
value=$(eval "echo \$$type") &&
|
||||
printf "$mode $type %s\t%s" "$value" "$path" >bad &&
|
||||
bad_tree=$(git mktree <bad) &&
|
||||
git fsck 2>out &&
|
||||
cat out &&
|
||||
grep "warning.*tree $bad_tree" out
|
||||
)'
|
||||
done <<-\EOF
|
||||
100644 blob
|
||||
040000 tree
|
||||
EOF
|
||||
done <<-EOF
|
||||
dot .
|
||||
dotdot ..
|
||||
dotgit .git
|
||||
dotgit-case .GIT
|
||||
dotgit-unicode .gI${u200c}T .gI{u200c}T
|
||||
dotgit-case2 .Git
|
||||
git-tilde1 git~1
|
||||
dotgitdot .git.
|
||||
dot-backslash-case .\\\\.GIT\\\\foobar
|
||||
dotgit-case-backslash .git\\\\foobar
|
||||
EOF
|
||||
|
||||
# create a static test repo which is broken by omitting
|
||||
# one particular object ($1, which is looked up via rev-parse
|
||||
|
Reference in New Issue
Block a user