#!/bin/sh global test_description := ''git commit races'' source ./test-lib.sh test_expect_success 'race to create orphan commit' ' write_script hare-editor <<-\EOF && git commit --allow-empty -m hare EOF test_must_fail env EDITOR=./hare-editor git commit --allow-empty -m tortoise -e && git show -s --pretty=format:%s >subject && grep hare subject && test -z "$(git show -s --pretty=format:%P)" ' test_expect_success 'race to create non-orphan commit' ' write_script airplane-editor <<-\EOF && git commit --allow-empty -m airplane EOF git checkout --orphan branch && git commit --allow-empty -m base && git rev-parse HEAD >base && test_must_fail env EDITOR=./airplane-editor git commit --allow-empty -m ship -e && git show -s --pretty=format:%s >subject && grep airplane subject && git rev-parse HEAD^ >parent && test_cmp base parent ' test_done (CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"git commit races">)} spids: [4] ) ] spids: [4] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ <"race to create orphan commit">)} { (SQ <"\n"> <"\twrite_script hare-editor <<-\\EOF &&\n"> <"\tgit commit --allow-empty -m hare\n"> <"\tEOF\n"> <"\ttest_must_fail env EDITOR=./hare-editor git commit --allow-empty -m tortoise -e &&\n"> <"\tgit show -s --pretty=format:%s >subject &&\n"> <"\tgrep hare subject &&\n"> <"\ttest -z \"$(git show -s --pretty=format:%P)\"\n"> ) } ) (C {(test_expect_success)} {(SQ <"race to create non-orphan commit">)} { (SQ <"\n"> <"\twrite_script airplane-editor <<-\\EOF &&\n"> <"\tgit commit --allow-empty -m airplane\n"> <"\tEOF\n"> <"\tgit checkout --orphan branch &&\n"> <"\tgit commit --allow-empty -m base &&\n"> <"\tgit rev-parse HEAD >base &&\n"> <"\ttest_must_fail env EDITOR=./airplane-editor git commit --allow-empty -m ship -e &&\n"> <"\tgit show -s --pretty=format:%s >subject &&\n"> <"\tgrep airplane subject &&\n"> <"\tgit rev-parse HEAD^ >parent &&\n"> <"\ttest_cmp base parent\n"> ) } ) (C {(test_done)}) ] )