(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <"combined diff">)}
          spids: [4]
        )
      ]
      spids: [4]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(.)} {(DQ ($ VSub_Name "$TEST_DIRECTORY")) (/diff-lib.sh)})
    (FuncDef
      name: setup_helper
      body: 
        (BraceGroup
          children: [
            (AndOr
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:one)
                      op: Equal
                      rhs: {($ VSub_Number "$1")}
                      spids: [30]
                    )
                    (assign_pair
                      lhs: (LhsName name:branch)
                      op: Equal
                      rhs: {($ VSub_Number "$2")}
                      spids: [33]
                    )
                    (assign_pair
                      lhs: (LhsName name:side)
                      op: Equal
                      rhs: {($ VSub_Number "$3")}
                      spids: [36]
                    )
                  ]
                  spids: [30]
                )
                (AndOr
                  children: [
                    (C {(git)} {(branch)} {($ VSub_Name "$side")} {($ VSub_Name "$branch")})
                    (AndOr
                      children: [
                        (ForEach
                          iter_name: l
                          iter_words: [{($ VSub_Name "$one")} {(two)} {(three)} {(fyra)}]
                          do_arg_iter: False
                          body: (DoGroup children:[(C {(echo)} {($ VSub_Name "$l")})] spids:[6977])
                          redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(file)} spids:[79])]
                          spids: [59 -1]
                        )
                        (AndOr
                          children: [
                            (C {(git)} {(add)} {(file)})
                            (AndOr
                              children: [
                                (C {(test_tick)})
                                (AndOr
                                  children: [
                                    (C {(git)} {(commit)} {(-m)} {($ VSub_Name "$branch")})
                                    (AndOr
                                      children: [
                                        (C {(git)} {(checkout)} {($ VSub_Name "$side")})
                                        (AndOr
                                          children: [
                                            (ForEach
                                              iter_name: l
                                              iter_words: [
                                                {($ VSub_Name "$one")}
                                                {(two)}
                                                {(three)}
                                                {(quatro)}
                                              ]
                                              do_arg_iter: False
                                              body: 
                                                (DoGroup
                                                  children: [(C {(echo)} {($ VSub_Name "$l")})]
                                                  spids: [134 142]
                                                )
                                              redirects: [
                                                (Redir
                                                  op_id: Redir_Great
                                                  fd: -1
                                                  arg_word: {(file)}
                                                  spids: [144]
                                                )
                                              ]
                                              spids: [124 -1]
                                            )
                                            (AndOr
                                              children: [
                                                (C {(git)} {(add)} {(file)})
                                                (AndOr
                                                  children: [
                                                    (C {(test_tick)})
                                                    (AndOr
                                                      children: [
                                                        (C {(git)} {(commit)} {(-m)} 
                                                          {($ VSub_Name "$side")}
                                                        )
                                                        (AndOr
                                                          children: [
                                                            (C {(test_must_fail)} {(git)} {(merge)} 
                                                              {($ VSub_Name "$branch")}
                                                            )
                                                            (AndOr
                                                              children: [
                                                                (ForEach
                                                                  iter_name: l
                                                                  iter_words: [
                                                                    {($ VSub_Name "$one")}
                                                                    {(three)}
                                                                    {(four)}
                                                                  ]
                                                                  do_arg_iter: False
                                                                  body: 
                                                                    (DoGroup
                                                                      children: [
                                                                        (C {(echo)} 
                                                                          {($ VSub_Name "$l")}
                                                                        )
                                                                      ]
                                                                      spids: [199 207]
                                                                    )
                                                                  redirects: [
                                                                    (Redir
                                                                      op_id: Redir_Great
                                                                      fd: -1
                                                                      arg_word: {(file)}
                                                                      spids: [209]
                                                                    )
                                                                  ]
                                                                  spids: [191 -1]
                                                                )
                                                                (AndOr
                                                                  children: [
                                                                    (C {(git)} {(add)} {(file)})
                                                                    (AndOr
                                                                      children: [
                                                                        (C {(test_tick)})
                                                                        (C {(git)} {(commit)} {(-m)} 
                                                                          {
                                                                            (DQ ("merge ") 
                                                                              ($ VSub_Name "$branch") (" into ") ($ VSub_Name "$side")
                                                                            )
                                                                          }
                                                                        )
                                                                      ]
                                                                      op_id: Op_DAmp
                                                                    )
                                                                  ]
                                                                  op_id: Op_DAmp
                                                                )
                                                              ]
                                                              op_id: Op_DAmp
                                                            )
                                                          ]
                                                          op_id: Op_DAmp
                                                        )
                                                      ]
                                                      op_id: Op_DAmp
                                                    )
                                                  ]
                                                  op_id: Op_DAmp
                                                )
                                              ]
                                              op_id: Op_DAmp
                                            )
                                          ]
                                          op_id: Op_DAmp
                                        )
                                      ]
                                      op_id: Op_DAmp
                                    )
                                  ]
                                  op_id: Op_DAmp
                                )
                              ]
                              op_id: Op_DAmp
                            )
                          ]
                          op_id: Op_DAmp
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  op_id: Op_DAmp
                )
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [27]
        )
      spids: [22 26]
    )
    (FuncDef
      name: verify_helper
      body: 
        (BraceGroup
          children: [
            (AndOr
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:it)
                      op: Equal
                      rhs: {($ VSub_Number "$1")}
                      spids: [253]
                    )
                  ]
                  spids: [253]
                )
                (AndOr
                  children: [
                    (SimpleCommand
                      words: [
                        {(sed)}
                        {(-e)}
                        {
                          (SQ <"\n"> <"\t\t1,/^@@@/d\n"> <"\t\t/^ -/d\n"> <"\t\ts/^\\(.\\)./\\1/\n"> 
                            <"\t">
                          )
                        }
                        {(DQ ($ VSub_Name "$it"))}
                      ]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: -1
                          arg_word: {(DQ ($ VSub_Name "$it") (.actual.1))}
                          spids: [280]
                        )
                      ]
                    )
                    (AndOr
                      children: [
                        (SimpleCommand
                          words: [
                            {(sed)}
                            {(-e)}
                            {
                              (SQ <"\n"> <"\t\t1,/^@@@/d\n"> <"\t\t/^- /d\n"> <"\t\ts/^.\\(.\\)/\\1/\n"> 
                                <"\t">
                              )
                            }
                            {(DQ ($ VSub_Name "$it"))}
                          ]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: -1
                              arg_word: {(DQ ($ VSub_Name "$it") (.actual.2))}
                              spids: [305]
                            )
                          ]
                        )
                        (AndOr
                          children: [
                            (Pipeline
                              children: [
                                (C {(git)} {(diff)} {(DQ ($ VSub_Name "$it") ("^"))} 
                                  {(DQ ($ VSub_Name "$it"))} {(--)}
                                )
                                (SimpleCommand
                                  words: [{(sed)} {(-e)} {(SQ <"1,/^@@/d">)}]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_Great
                                      fd: -1
                                      arg_word: {(DQ ($ VSub_Name "$it") (.expect.1))}
                                      spids: [340]
                                    )
                                  ]
                                )
                              ]
                              negated: False
                            )
                            (AndOr
                              children: [
                                (C {(test_cmp)} {(DQ ($ VSub_Name "$it") (.expect.1))} 
                                  {(DQ ($ VSub_Name "$it") (.actual.1))}
                                )
                                (AndOr
                                  children: [
                                    (Pipeline
                                      children: [
                                        (C {(git)} {(diff)} {(DQ ($ VSub_Name "$it") ("^2"))} 
                                          {(DQ ($ VSub_Name "$it"))} {(--)}
                                        )
                                        (SimpleCommand
                                          words: [{(sed)} {(-e)} {(SQ <"1,/^@@/d">)}]
                                          redirects: [
                                            (Redir
                                              op_id: Redir_Great
                                              fd: -1
                                              arg_word: {(DQ ($ VSub_Name "$it") (.expect.2))}
                                              spids: [390]
                                            )
                                          ]
                                        )
                                      ]
                                      negated: False
                                    )
                                    (C {(test_cmp)} {(DQ ($ VSub_Name "$it") (.expect.2))} 
                                      {(DQ ($ VSub_Name "$it") (.actual.2))}
                                    )
                                  ]
                                  op_id: Op_DAmp
                                )
                              ]
                              op_id: Op_DAmp
                            )
                          ]
                          op_id: Op_DAmp
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  op_id: Op_DAmp
                )
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [250]
        )
      spids: [245 249]
    )
    (C {(test_expect_success)} {(setup)} 
      {
        (SQ <"\n"> <"\t>file &&\n"> <"\tgit add file &&\n"> <"\ttest_tick &&\n"> 
          <"\tgit commit -m initial &&\n"> <"\n"> <"\tgit branch withone &&\n"> <"\tgit branch sansone &&\n"> <"\n"> <"\tgit checkout withone &&\n"> 
          <"\tsetup_helper one withone sidewithone &&\n"> <"\n"> <"\tgit checkout sansone &&\n"> <"\tsetup_helper \"\" sansone sidesansone\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"check combined output (1)">)} 
      {(SQ <"\n"> <"\tgit show sidewithone -- >sidewithone &&\n"> <"\tverify_helper sidewithone\n">)}
    )
    (C {(test_expect_success)} {(SQ <"check combined output (2)">)} 
      {(SQ <"\n"> <"\tgit show sidesansone -- >sidesansone &&\n"> <"\tverify_helper sidesansone\n">)}
    )
    (C {(test_expect_success)} {(SQ <"diagnose truncated file">)} 
      {
        (SQ <"\n"> <"\t>file &&\n"> <"\tgit add file &&\n"> <"\tgit commit --amend -C HEAD &&\n"> 
          <"\tgit show >out &&\n"> <"\tgrep \"diff --cc file\" out\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"setup for --cc --raw">)} 
      {
        (SQ <"\n"> <"\tblob=$(echo file | git hash-object --stdin -w) &&\n"> 
          <"\tbase_tree=$(echo \"100644 blob $blob\tfile\" | git mktree) &&\n"> <"\ttrees= &&\n"> <"\tfor i in $(test_seq 1 40)\n"> <"\tdo\n"> 
          <"\t\tblob=$(echo file$i | git hash-object --stdin -w) &&\n"> <"\t\ttrees=\"$trees$(echo \"100644 blob $blob\tfile\" | git mktree)$LF\"\n"> <"\tdone\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"check --cc --raw with four trees">)} 
      {
        (SQ <"\n"> <"\tfour_trees=$(echo \"$trees\" | sed -e 4q) &&\n"> 
          <"\tgit diff --cc --raw $four_trees $base_tree >out &&\n"> <"\t# Check for four leading colons in the output:\n"> <"\tgrep \"^::::[^:]\" out\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"check --cc --raw with forty trees">)} 
      {
        (SQ <"\n"> <"\tgit diff --cc --raw $trees $base_tree >out &&\n"> 
          <"\t# Check for forty leading colons in the output:\n"> <"\tgrep \"^::::::::::::::::::::::::::::::::::::::::[^:]\" out\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"setup combined ignore spaces">)} 
      {
        (SQ <"\n"> <"\tgit checkout master &&\n"> <"\t>test &&\n"> <"\tgit add test &&\n"> 
          <"\tgit commit -m initial &&\n"> <"\n"> <"\ttr -d Q <<-\\EOF >test &&\n"> <"\talways coalesce\n"> <"\teol space coalesce Q\n"> 
          <"\tspace  change coalesce\n"> <"\tall spa ces coalesce\n"> <"\teol spaces Q\n"> <"\tspace  change\n"> <"\tall spa ces\n"> <"\tEOF\n"> 
          <"\tgit commit -m \"test space change\" -a &&\n"> <"\n"> <"\tgit checkout -b side HEAD^ &&\n"> <"\ttr -d Q <<-\\EOF >test &&\n"> <"\talways coalesce\n"> 
          <"\teol space coalesce\n"> <"\tspace change coalesce\n"> <"\tall spaces coalesce\n"> <"\teol spaces\n"> <"\tspace change\n"> 
          <"\tall spaces\n"> <"\tEOF\n"> <"\tgit commit -m \"test other space changes\" -a &&\n"> <"\n"> 
          <"\ttest_must_fail git merge master &&\n"> <"\ttr -d Q <<-\\EOF >test &&\n"> <"\teol spaces Q\n"> <"\tspace  change\n"> <"\tall spa ces\n"> 
          <"\tEOF\n"> <"\tgit commit -m merged -a\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"check combined output (no ignore space)">)} 
      {
        (SQ <"\n"> <"\tgit show >actual.tmp &&\n"> <"\tsed -e \"1,/^@@@/d\" < actual.tmp >actual &&\n"> 
          <"\ttr -d Q <<-\\EOF >expected &&\n"> <"\t--always coalesce\n"> <"\t- eol space coalesce\n"> <"\t- space change coalesce\n"> 
          <"\t- all spaces coalesce\n"> <"\t- eol spaces\n"> <"\t- space change\n"> <"\t- all spaces\n"> <"\t -eol space coalesce Q\n"> 
          <"\t -space  change coalesce\n"> <"\t -all spa ces coalesce\n"> <"\t+ eol spaces Q\n"> <"\t+ space  change\n"> <"\t+ all spa ces\n"> 
          <"\tEOF\n"> <"\tcompare_diff_patch expected actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"check combined output (ignore space at eol)">)} 
      {
        (SQ <"\n"> <"\tgit show --ignore-space-at-eol >actual.tmp &&\n"> 
          <"\tsed -e \"1,/^@@@/d\" < actual.tmp >actual &&\n"> <"\ttr -d Q <<-\\EOF >expected &&\n"> <"\t--always coalesce\n"> <"\t--eol space coalesce\n"> 
          <"\t- space change coalesce\n"> <"\t- all spaces coalesce\n"> <"\t -space  change coalesce\n"> <"\t -all spa ces coalesce\n"> 
          <"\t  eol spaces Q\n"> <"\t- space change\n"> <"\t- all spaces\n"> <"\t+ space  change\n"> <"\t+ all spa ces\n"> <"\tEOF\n"> 
          <"\tcompare_diff_patch expected actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"check combined output (ignore space change)">)} 
      {
        (SQ <"\n"> <"\tgit show -b >actual.tmp &&\n"> 
          <"\tsed -e \"1,/^@@@/d\" < actual.tmp >actual &&\n"> <"\ttr -d Q <<-\\EOF >expected &&\n"> <"\t--always coalesce\n"> <"\t--eol space coalesce\n"> 
          <"\t--space change coalesce\n"> <"\t- all spaces coalesce\n"> <"\t -all spa ces coalesce\n"> <"\t  eol spaces Q\n"> 
          <"\t  space  change\n"> <"\t- all spaces\n"> <"\t+ all spa ces\n"> <"\tEOF\n"> <"\tcompare_diff_patch expected actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"check combined output (ignore all spaces)">)} 
      {
        (SQ <"\n"> <"\tgit show -w >actual.tmp &&\n"> 
          <"\tsed -e \"1,/^@@@/d\" < actual.tmp >actual &&\n"> <"\ttr -d Q <<-\\EOF >expected &&\n"> <"\t--always coalesce\n"> <"\t--eol space coalesce\n"> 
          <"\t--space change coalesce\n"> <"\t--all spaces coalesce\n"> <"\t  eol spaces Q\n"> <"\t  space  change\n"> <"\t  all spa ces\n"> 
          <"\tEOF\n"> <"\tcompare_diff_patch expected actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"combine diff coalesce simple">)} 
      {
        (SQ <"\n"> <"\t>test &&\n"> <"\tgit add test &&\n"> <"\tgit commit -m initial &&\n"> 
          <"\ttest_seq 4 >test &&\n"> <"\tgit commit -a -m empty1 &&\n"> <"\tgit branch side1 &&\n"> <"\tgit checkout HEAD^ &&\n"> 
          <"\ttest_seq 5 >test &&\n"> <"\tgit commit -a -m empty2 &&\n"> <"\ttest_must_fail git merge side1 &&\n"> <"\t>test &&\n"> 
          <"\tgit commit -a -m merge &&\n"> <"\tgit show >actual.tmp &&\n"> <"\tsed -e \"1,/^@@@/d\" < actual.tmp >actual &&\n"> 
          <"\ttr -d Q <<-\\EOF >expected &&\n"> <"\t--1\n"> <"\t--2\n"> <"\t--3\n"> <"\t--4\n"> <"\t- 5\n"> <"\tEOF\n"> 
          <"\tcompare_diff_patch expected actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"combine diff coalesce tricky">)} 
      {
        (SQ <"\n"> <"\t>test &&\n"> <"\tgit add test &&\n"> 
          <"\tgit commit -m initial --allow-empty &&\n"> <"\tcat <<-\\EOF >test &&\n"> <"\t3\n"> <"\t1\n"> <"\t2\n"> <"\t3\n"> <"\t4\n"> <"\tEOF\n"> 
          <"\tgit commit -a -m empty1 &&\n"> <"\tgit branch -f side1 &&\n"> <"\tgit checkout HEAD^ &&\n"> <"\tcat <<-\\EOF >test &&\n"> <"\t1\n"> 
          <"\t3\n"> <"\t5\n"> <"\t4\n"> <"\tEOF\n"> <"\tgit commit -a -m empty2 &&\n"> <"\tgit branch -f side2 &&\n"> 
          <"\ttest_must_fail git merge side1 &&\n"> <"\t>test &&\n"> <"\tgit commit -a -m merge &&\n"> <"\tgit show >actual.tmp &&\n"> 
          <"\tsed -e \"1,/^@@@/d\" < actual.tmp >actual &&\n"> <"\ttr -d Q <<-\\EOF >expected &&\n"> <"\t -3\n"> <"\t--1\n"> <"\t -2\n"> <"\t--3\n"> <"\t- 5\n"> 
          <"\t--4\n"> <"\tEOF\n"> <"\tcompare_diff_patch expected actual &&\n"> <"\tgit checkout -f side1 &&\n"> 
          <"\ttest_must_fail git merge side2 &&\n"> <"\t>test &&\n"> <"\tgit commit -a -m merge &&\n"> <"\tgit show >actual.tmp &&\n"> 
          <"\tsed -e \"1,/^@@@/d\" < actual.tmp >actual &&\n"> <"\ttr -d Q <<-\\EOF >expected &&\n"> <"\t- 3\n"> <"\t--1\n"> <"\t- 2\n"> <"\t--3\n"> <"\t -5\n"> 
          <"\t--4\n"> <"\tEOF\n"> <"\tcompare_diff_patch expected actual\n">
        )
      }
    )
    (C {(test_expect_failure)} {(SQ <"combine diff coalesce three parents">)} 
      {
        (SQ <"\n"> <"\t>test &&\n"> <"\tgit add test &&\n"> 
          <"\tgit commit -m initial --allow-empty &&\n"> <"\tcat <<-\\EOF >test &&\n"> <"\t3\n"> <"\t1\n"> <"\t2\n"> <"\t3\n"> <"\t4\n"> <"\tEOF\n"> 
          <"\tgit commit -a -m empty1 &&\n"> <"\tgit checkout -B side1 &&\n"> <"\tgit checkout HEAD^ &&\n"> <"\tcat <<-\\EOF >test &&\n"> <"\t1\n"> 
          <"\t3\n"> <"\t7\n"> <"\t5\n"> <"\t4\n"> <"\tEOF\n"> <"\tgit commit -a -m empty2 &&\n"> 
          <"\tgit branch -f side2 &&\n"> <"\tgit checkout HEAD^ &&\n"> <"\tcat <<-\\EOF >test &&\n"> <"\t3\n"> <"\t1\n"> <"\t6\n"> <"\t5\n"> 
          <"\t4\n"> <"\tEOF\n"> <"\tgit commit -a -m empty3 &&\n"> <"\t>test &&\n"> <"\tgit add test &&\n"> 
          <"\tTREE=$(git write-tree) &&\n"> <"\tCOMMIT=$(git commit-tree -p HEAD -p side1 -p side2 -m merge $TREE) &&\n"> 
          <"\tgit show $COMMIT >actual.tmp &&\n"> <"\tsed -e \"1,/^@@@/d\" < actual.tmp >actual &&\n"> <"\ttr -d Q <<-\\EOF >expected &&\n"> <"\t-- 3\n"> 
          <"\t---1\n"> <"\t-  6\n"> <"\t - 2\n"> <"\t --3\n"> <"\t  -7\n"> <"\t- -5\n"> <"\t---4\n"> <"\tEOF\n"> 
          <"\tcompare_diff_patch expected actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"combine diff missing delete bug">)} 
      {
        (SQ <"\n"> <"\tgit commit -m initial --allow-empty &&\n"> <"\tcat <<-\\EOF >test &&\n"> 
          <"\t1\n"> <"\t2\n"> <"\t3\n"> <"\t4\n"> <"\tEOF\n"> <"\tgit add test &&\n"> <"\tgit commit -a -m side1 &&\n"> 
          <"\tgit checkout -B side1 &&\n"> <"\tgit checkout HEAD^ &&\n"> <"\tcat <<-\\EOF >test &&\n"> <"\t0\n"> <"\t1\n"> <"\t2\n"> <"\t3\n"> 
          <"\t4modified\n"> <"\tEOF\n"> <"\tgit add test &&\n"> <"\tgit commit -m side2 &&\n"> <"\tgit branch -f side2 &&\n"> 
          <"\ttest_must_fail git merge --no-commit side1 &&\n"> <"\tcat <<-\\EOF >test &&\n"> <"\t1\n"> <"\t2\n"> <"\t3\n"> <"\t4modified\n"> <"\tEOF\n"> 
          <"\tgit add test &&\n"> <"\tgit commit -a -m merge &&\n"> <"\tgit diff-tree -c -p HEAD >actual.tmp &&\n"> 
          <"\tsed -e \"1,/^@@@/d\" < actual.tmp >actual &&\n"> <"\ttr -d Q <<-\\EOF >expected &&\n"> <"\t- 0\n"> <"\t  1\n"> <"\t  2\n"> <"\t  3\n"> <"\t -4\n"> 
          <"\t +4modified\n"> <"\tEOF\n"> <"\tcompare_diff_patch expected actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"combine diff gets tree sorting right">)} 
      {
        (SQ <"\n"> <"\t# create a directory and a file that sort differently in trees\n"> 
          <"\t# versus byte-wise (implied \"/\" sorts after \".\")\n"> <"\tgit checkout -f master &&\n"> <"\tmkdir foo &&\n"> <"\techo base >foo/one &&\n"> 
          <"\techo base >foo/two &&\n"> <"\techo base >foo.ext &&\n"> <"\tgit add foo foo.ext &&\n"> <"\tgit commit -m base &&\n"> <"\n"> 
          <"\t# one side modifies a file in the directory, along with the root\n"> <"\t# file...\n"> <"\techo master >foo/one &&\n"> <"\techo master >foo.ext &&\n"> 
          <"\tgit commit -a -m master &&\n"> <"\n"> <"\t# the other side modifies the other file in the directory\n"> 
          <"\tgit checkout -b other HEAD^ &&\n"> <"\techo other >foo/two &&\n"> <"\tgit commit -a -m other &&\n"> <"\n"> 
          <"\t# And now we merge. The files in the subdirectory will resolve cleanly,\n"> <"\t# meaning that a combined diff will not find them interesting. But it\n"> 
          <"\t# will find the tree itself interesting, because it had to be merged.\n"> <"\tgit checkout master &&\n"> <"\tgit merge other &&\n"> <"\n"> 
          <"\tprintf \"MM\\tfoo\\n\" >expect &&\n"> <"\tgit diff-tree -c --name-status -t HEAD >actual.tmp &&\n"> <"\tsed 1d <actual.tmp >actual &&\n"> 
          <"\ttest_cmp expect actual\n">
        )
      }
    )
    (C {(test_done)})
  ]
)