#!/bin/sh global test_description := ''apply empty'' source ./test-lib.sh test_expect_success setup ' >empty && git add empty && test_tick && git commit -m initial && for i in a b c d e do echo $i done >empty && cat empty >expect && git diff | sed -e "/^diff --git/d" \ -e "/^index /d" \ -e "s|a/empty|empty.orig|" \ -e "s|b/empty|empty|" >patch0 && sed -e "s|empty|missing|" patch0 >patch1 && >empty && git update-index --refresh ' test_expect_success 'apply empty' ' git reset --hard && rm -f missing && git apply patch0 && test_cmp expect empty ' test_expect_success 'apply --index empty' ' git reset --hard && rm -f missing && git apply --index patch0 && test_cmp expect empty && git diff --exit-code ' test_expect_success 'apply create' ' git reset --hard && rm -f missing && git apply patch1 && test_cmp expect missing ' test_expect_success 'apply --index create' ' git reset --hard && rm -f missing && git apply --index patch1 && test_cmp expect missing && git diff --exit-code ' test_done (CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"apply empty">)} spids: [4] ) ] spids: [4] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(setup)} { (SQ <"\n"> <"\t>empty &&\n"> <"\tgit add empty &&\n"> <"\ttest_tick &&\n"> <"\tgit commit -m initial &&\n"> <"\tfor i in a b c d e\n"> <"\tdo\n"> <"\t\techo $i\n"> <"\tdone >empty &&\n"> <"\tcat empty >expect &&\n"> <"\tgit diff |\n"> <"\tsed -e \"/^diff --git/d\" \\\n"> <"\t -e \"/^index /d\" \\\n"> <"\t -e \"s|a/empty|empty.orig|\" \\\n"> <"\t -e \"s|b/empty|empty|\" >patch0 &&\n"> <"\tsed -e \"s|empty|missing|\" patch0 >patch1 &&\n"> <"\t>empty &&\n"> <"\tgit update-index --refresh\n"> ) } ) (C {(test_expect_success)} {(SQ <"apply empty">)} { (SQ <"\n"> <"\tgit reset --hard &&\n"> <"\trm -f missing &&\n"> <"\tgit apply patch0 &&\n"> <"\ttest_cmp expect empty\n"> ) } ) (C {(test_expect_success)} {(SQ <"apply --index empty">)} { (SQ <"\n"> <"\tgit reset --hard &&\n"> <"\trm -f missing &&\n"> <"\tgit apply --index patch0 &&\n"> <"\ttest_cmp expect empty &&\n"> <"\tgit diff --exit-code\n"> ) } ) (C {(test_expect_success)} {(SQ <"apply create">)} { (SQ <"\n"> <"\tgit reset --hard &&\n"> <"\trm -f missing &&\n"> <"\tgit apply patch1 &&\n"> <"\ttest_cmp expect missing\n"> ) } ) (C {(test_expect_success)} {(SQ <"apply --index create">)} { (SQ <"\n"> <"\tgit reset --hard &&\n"> <"\trm -f missing &&\n"> <"\tgit apply --index patch1 &&\n"> <"\ttest_cmp expect missing &&\n"> <"\tgit diff --exit-code\n"> ) } ) (C {(test_done)}) ] )