mirror of
https://github.com/git/git.git
synced 2024-11-25 02:44:48 +08:00
6738c81942
When pushing to overwrite a ref that points at a commit we do not even have, the recent "terse push" patch tried to get a unique abbreviation for the non-existent (from our point of view) object, which resulted in strcpy(buf, NULL) and segfaulted. Signed-off-by: Junio C Hamano <gitster@pobox.com>
43 lines
593 B
Bash
Executable File
43 lines
593 B
Bash
Executable File
#!/bin/sh
|
|
|
|
test_description='forced push to replace commit we do not have'
|
|
|
|
. ./test-lib.sh
|
|
|
|
test_expect_success setup '
|
|
|
|
>file1 && git add file1 && test_tick &&
|
|
git commit -m Initial &&
|
|
|
|
mkdir another && (
|
|
cd another &&
|
|
git init &&
|
|
git fetch .. master:master
|
|
) &&
|
|
|
|
>file2 && git add file2 && test_tick &&
|
|
git commit -m Second
|
|
|
|
'
|
|
|
|
test_expect_success 'non forced push should die not segfault' '
|
|
|
|
(
|
|
cd another &&
|
|
git push .. master:master
|
|
test $? = 1
|
|
)
|
|
|
|
'
|
|
|
|
test_expect_success 'forced push should succeed' '
|
|
|
|
(
|
|
cd another &&
|
|
git push .. +master:master
|
|
)
|
|
|
|
'
|
|
|
|
test_done
|