#!/bin/sh global test_description := ''forced push to replace commit we do not have'' source ./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 .. 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 (CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"forced push to replace commit we do not have">)} spids: [4] ) ] spids: [4] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(setup)} { (SQ <"\n"> <"\n"> <"\t>file1 && git add file1 && test_tick &&\n"> <"\tgit commit -m Initial &&\n"> <"\tgit config receive.denyCurrentBranch warn &&\n"> <"\n"> <"\tmkdir another && (\n"> <"\t\tcd another &&\n"> <"\t\tgit init &&\n"> <"\t\tgit fetch --update-head-ok .. master:master\n"> <"\t) &&\n"> <"\n"> <"\t>file2 && git add file2 && test_tick &&\n"> <"\tgit commit -m Second\n"> <"\n"> ) } ) (C {(test_expect_success)} {(SQ <"non forced push should die not segfault">)} { (SQ <"\n"> <"\n"> <"\t(\n"> <"\t\tcd another &&\n"> <"\t\tgit push .. master:master\n"> <"\t\ttest $? = 1\n"> <"\t)\n"> <"\n"> ) } ) (C {(test_expect_success)} {(SQ <"forced push should succeed">)} { (SQ <"\n"> <"\n"> <"\t(\n"> <"\t\tcd another &&\n"> <"\t\tgit push .. +master:master\n"> <"\t)\n"> <"\n"> ) } ) (C {(test_done)}) ] )