зеркало из https://github.com/microsoft/git.git
t5601-clone: test case-conflicting files on case-insensitive filesystem
A recently introduced regression caused a segfault at clone time on case-insensitive filesystems when filenames differing only in case are present. This bug has already been fixed (repository: pre-initialize hash algo pointer, 2018-01-18), but it's not the first time similar problems have arisen. Therefore, introduce a test to catch this case and protect against future regressions. Signed-off-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
e26f7f19b6
Коммит
b6947af229
|
@ -573,4 +573,21 @@ test_expect_success 'GIT_TRACE_PACKFILE produces a usable pack' '
|
||||||
git -C replay.git index-pack -v --stdin <tmp.pack
|
git -C replay.git index-pack -v --stdin <tmp.pack
|
||||||
'
|
'
|
||||||
|
|
||||||
|
hex2oct () {
|
||||||
|
perl -ne 'printf "\\%03o", hex for /../g'
|
||||||
|
}
|
||||||
|
|
||||||
|
test_expect_success 'clone on case-insensitive fs' '
|
||||||
|
git init icasefs &&
|
||||||
|
(
|
||||||
|
cd icasefs
|
||||||
|
o=$(git hash-object -w --stdin </dev/null | hex2oct) &&
|
||||||
|
t=$(printf "100644 X\0${o}100644 x\0${o}" |
|
||||||
|
git hash-object -w -t tree --stdin) &&
|
||||||
|
c=$(git commit-tree -m bogus $t) &&
|
||||||
|
git update-ref refs/heads/bogus $c &&
|
||||||
|
git clone -b bogus . bogus
|
||||||
|
)
|
||||||
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
|
Загрузка…
Ссылка в новой задаче