(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: { (SQ (Token id: Id.Lit_Chars val: 'basic git merge-index / git-merge-one-file tests' span_id: 6 ) ) } spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup diverging branches' span_id:17))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:21) (Token id:Id.Lit_Chars val:'\tfor i in 1 2 3 4 5 6 7 8 9 10; do\n' span_id:22) (Token id:Id.Lit_Chars val:'\t\techo $i\n' span_id:23) (Token id:Id.Lit_Chars val:'\tdone >file &&\n' span_id:24) (Token id:Id.Lit_Chars val:'\tgit add file &&\n' span_id:25) (Token id:Id.Lit_Chars val:'\tgit commit -m base &&\n' span_id:26) (Token id:Id.Lit_Chars val:'\tgit tag base &&\n' span_id:27) (Token id:Id.Lit_Chars val:'\tsed s/2/two/ <file >tmp &&\n' span_id:28) (Token id:Id.Lit_Chars val:'\tmv tmp file &&\n' span_id:29) (Token id:Id.Lit_Chars val:'\tgit commit -a -m two &&\n' span_id:30) (Token id:Id.Lit_Chars val:'\tgit tag two &&\n' span_id:31) (Token id:Id.Lit_Chars val:'\tgit checkout -b other HEAD^ &&\n' span_id:32) (Token id:Id.Lit_Chars val:'\tsed s/10/ten/ <file >tmp &&\n' span_id:33) (Token id:Id.Lit_Chars val:'\tmv tmp file &&\n' span_id:34) (Token id:Id.Lit_Chars val:'\tgit commit -a -m ten &&\n' span_id:35) (Token id:Id.Lit_Chars val:'\tgit tag ten\n' span_id:36) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:42) fd: -1 arg_word: {(expect-merged)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:45) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:47))} here_end_span_id: 60 stdin_parts: [('1\n') ('two\n') ('3\n') ('4\n') ('5\n') ('6\n') ('7\n') ('8\n') ('9\n') ('ten\n')] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'read-tree does not resolve content merge' span_id:65))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:69) (Token id:Id.Lit_Chars val:'\tgit read-tree -i -m base ten two &&\n' span_id:70) (Token id:Id.Lit_Chars val:'\techo file >expect &&\n' span_id:71) (Token id: Id.Lit_Chars val: '\tgit diff-files --name-only --diff-filter=U >unmerged &&\n' span_id: 72 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect unmerged\n' span_id:73) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git merge-index git-merge-one-file resolves' span_id:80))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:84) (Token id: Id.Lit_Chars val: '\tgit merge-index git-merge-one-file -a &&\n' span_id: 85 ) (Token id:Id.Lit_Chars val:'\tgit diff-files --name-only --diff-filter=U >unmerged &&\n' span_id:86) (Token id:Id.Lit_Chars val:'\t>expect &&\n' span_id:87) (Token id:Id.Lit_Chars val:'\ttest_cmp expect unmerged &&\n' span_id:88) (Token id:Id.Lit_Chars val:'\ttest_cmp expect-merged file &&\n' span_id:89) (Token id:Id.Lit_Chars val:'\tgit cat-file blob :file >file-index &&\n' span_id:90) (Token id:Id.Lit_Chars val:'\ttest_cmp expect-merged file-index\n' span_id:91) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup bare merge' span_id:98))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:102) (Token id:Id.Lit_Chars val:'\tgit clone --bare . bare.git &&\n' span_id:103) (Token id:Id.Lit_Chars val:'\t(cd bare.git &&\n' span_id:104) (Token id:Id.Lit_Chars val:'\t GIT_INDEX_FILE=$PWD/merge.index &&\n' span_id:105) (Token id:Id.Lit_Chars val:'\t export GIT_INDEX_FILE &&\n' span_id:106) (Token id:Id.Lit_Chars val:'\t git read-tree -i -m base ten two\n' span_id:107) (Token id:Id.Lit_Chars val:'\t)\n' span_id:108) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'merge-one-file fails without a work tree' span_id:115))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:119) (Token id:Id.Lit_Chars val:'\t(cd bare.git &&\n' span_id:120) (Token id:Id.Lit_Chars val:'\t GIT_INDEX_FILE=$PWD/merge.index &&\n' span_id:121) (Token id:Id.Lit_Chars val:'\t export GIT_INDEX_FILE &&\n' span_id:122) (Token id:Id.Lit_Chars val:'\t test_must_fail git merge-index git-merge-one-file -a\n' span_id:123) (Token id:Id.Lit_Chars val:'\t)\n' span_id:124) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'merge-one-file respects GIT_WORK_TREE' span_id:131))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:135) (Token id:Id.Lit_Chars val:'\t(cd bare.git &&\n' span_id:136) (Token id:Id.Lit_Chars val:'\t mkdir work &&\n' span_id:137) (Token id:Id.Lit_Chars val:'\t GIT_WORK_TREE=$PWD/work &&\n' span_id:138) (Token id:Id.Lit_Chars val:'\t export GIT_WORK_TREE &&\n' span_id:139) (Token id:Id.Lit_Chars val:'\t GIT_INDEX_FILE=$PWD/merge.index &&\n' span_id:140) (Token id:Id.Lit_Chars val:'\t export GIT_INDEX_FILE &&\n' span_id:141) (Token id: Id.Lit_Chars val: '\t git merge-index git-merge-one-file -a &&\n' span_id: 142 ) (Token id:Id.Lit_Chars val:'\t git cat-file blob :file >work/file-index\n' span_id:143) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:144) (Token id:Id.Lit_Chars val:'\ttest_cmp expect-merged bare.git/work/file &&\n' span_id:145) (Token id: Id.Lit_Chars val: '\ttest_cmp expect-merged bare.git/work/file-index\n' span_id: 146 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'merge-one-file respects core.worktree' span_id:153))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:157) (Token id:Id.Lit_Chars val:'\tmkdir subdir &&\n' span_id:158) (Token id:Id.Lit_Chars val:'\tgit clone . subdir/child &&\n' span_id:159) (Token id:Id.Lit_Chars val:'\t(cd subdir &&\n' span_id:160) (Token id:Id.Lit_Chars val:'\t GIT_DIR=$PWD/child/.git &&\n' span_id:161) (Token id:Id.Lit_Chars val:'\t export GIT_DIR &&\n' span_id:162) (Token id:Id.Lit_Chars val:'\t git config core.worktree "$PWD/child" &&\n' span_id:163) (Token id: Id.Lit_Chars val: '\t git read-tree -i -m base ten two &&\n' span_id: 164 ) (Token id:Id.Lit_Chars val:'\t git merge-index git-merge-one-file -a &&\n' span_id:165) (Token id: Id.Lit_Chars val: '\t git cat-file blob :file >file-index\n' span_id: 166 ) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:167) (Token id: Id.Lit_Chars val: '\ttest_cmp expect-merged subdir/child/file &&\n' span_id: 168 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect-merged subdir/file-index\n' span_id:169) ) } ) (C {(test_done)}) ] )