|  | #!/bin/sh | 
|  |  | 
|  | test_description='forced push to replace commit we do not have' | 
|  |  | 
|  | GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main | 
|  | export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME | 
|  |  | 
|  | . ./test-lib.sh | 
|  |  | 
|  | test_expect_success setup ' | 
|  |  | 
|  | >file1 && git add file1 && test_tick && | 
|  | git commit -m Initial && | 
|  | git config receive.denyCurrentBranch warn && | 
|  |  | 
|  | mkdir another && ( | 
|  | cd another && | 
|  | git init && | 
|  | git fetch --update-head-ok .. main:main | 
|  | ) && | 
|  |  | 
|  | >file2 && git add file2 && test_tick && | 
|  | git commit -m Second | 
|  |  | 
|  | ' | 
|  |  | 
|  | test_expect_success 'non forced push should die not segfault' ' | 
|  |  | 
|  | ( | 
|  | cd another && | 
|  | test_must_fail git push .. main:main | 
|  | ) | 
|  |  | 
|  | ' | 
|  |  | 
|  | test_expect_success 'forced push should succeed' ' | 
|  |  | 
|  | ( | 
|  | cd another && | 
|  | git push .. +main:main | 
|  | ) | 
|  |  | 
|  | ' | 
|  |  | 
|  | test_done |