зеркало из 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
|
||||
'
|
||||
|
||||
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
|
||||
|
|
Загрузка…
Ссылка в новой задаче