(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"git apply in reverse\n"> <"\n">)} spids: [13] ) ] spids: [13] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(setup)} { (SQ <"\n"> <"\n"> <"\tfor i in a b c d e f g h i j k l m n; do echo $i; done >file1 &&\n"> <"\tperl -pe \"y/ijk/\\\\000\\\\001\\\\002/\" <file1 >file2 &&\n"> <"\n"> <"\tgit add file1 file2 &&\n"> <"\tgit commit -m initial &&\n"> <"\tgit tag initial &&\n"> <"\n"> <"\tfor i in a b c g h i J K L m o n p q; do echo $i; done >file1 &&\n"> <"\tperl -pe \"y/mon/\\\\000\\\\001\\\\002/\" <file1 >file2 &&\n"> <"\n"> <"\tgit commit -a -m second &&\n"> <"\tgit tag second &&\n"> <"\n"> <"\tgit diff --binary initial second >patch\n"> <"\n"> ) } ) (C {(test_expect_success)} {(SQ <"apply in forward">)} { (SQ <"\n"> <"\n"> <"\tT0=$(git rev-parse \"second^{tree}\") &&\n"> <"\tgit reset --hard initial &&\n"> <"\tgit apply --index --binary patch &&\n"> <"\tT1=$(git write-tree) &&\n"> <"\ttest \"$T0\" = \"$T1\"\n"> ) } ) (C {(test_expect_success)} {(SQ <"apply in reverse">)} { (SQ <"\n"> <"\n"> <"\tgit reset --hard second &&\n"> <"\tgit apply --reverse --binary --index patch &&\n"> <"\tgit diff >diff &&\n"> <"\ttest_cmp /dev/null diff\n"> <"\n"> ) } ) (C {(test_expect_success)} {(SQ <"setup separate repository lacking postimage">)} { (SQ <"\n"> <"\n"> <"\tgit archive --format=tar --prefix=initial/ initial | $TAR xf - &&\n"> <"\t(\n"> <"\t\tcd initial && git init && git add .\n"> <"\t) &&\n"> <"\n"> <"\tgit archive --format=tar --prefix=second/ second | $TAR xf - &&\n"> <"\t(\n"> <"\t\tcd second && git init && git add .\n"> <"\t)\n"> <"\n"> ) } ) (C {(test_expect_success)} {(SQ <"apply in forward without postimage">)} { (SQ <"\n"> <"\n"> <"\tT0=$(git rev-parse \"second^{tree}\") &&\n"> <"\t(\n"> <"\t\tcd initial &&\n"> <"\t\tgit apply --index --binary ../patch &&\n"> <"\t\tT1=$(git write-tree) &&\n"> <"\t\ttest \"$T0\" = \"$T1\"\n"> <"\t)\n"> ) } ) (C {(test_expect_success)} {(SQ <"apply in reverse without postimage">)} { (SQ <"\n"> <"\n"> <"\tT0=$(git rev-parse \"initial^{tree}\") &&\n"> <"\t(\n"> <"\t\tcd second &&\n"> <"\t\tgit apply --index --binary --reverse ../patch &&\n"> <"\t\tT1=$(git write-tree) &&\n"> <"\t\ttest \"$T0\" = \"$T1\"\n"> <"\t)\n"> ) } ) (C {(test_expect_success)} {(SQ <"reversing a whitespace introduction">)} { (SQ <"\n"> <"\tsed \"s/a/a /\" < file1 > file1.new &&\n"> <"\tmv file1.new file1 &&\n"> <"\tgit diff | git apply --reverse --whitespace=error\n"> ) } ) (C {(test_done)}) ] )