(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: 
            {
              (SQ <'git cherry should detect patches integrated upstream\n'> <'\n'> 
                <'This test cherry-picks one local change of two into master branch, and\n'> <'checks that git cherry only returns the second patch in the local branch\n'>
              )
            }
          spids: [13]
        )
      ]
    )
    (C {<.>} {<'./test-lib.sh'>})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:GIT_AUTHOR_EMAIL)
          op: assign_op.Equal
          rhs: {<bogus_email_address>}
          spids: [26]
        )
      ]
    )
    (C {<export>} {<GIT_AUTHOR_EMAIL>})
    (C {<test_expect_success>} 
      {(SQ <'prepare repository with topic branch, and check cherry finds the 2 patches from there'>)} 
      {
        (SQ <'echo First > A &&\n'> <'     git update-index --add A &&\n'> <'     test_tick &&\n'> 
          <'     git commit -m "Add A." &&\n'> <'\n'> <'     git checkout -b my-topic-branch &&\n'> <'\n'> <'     echo Second > B &&\n'> 
          <'     git update-index --add B &&\n'> <'     test_tick &&\n'> <'     git commit -m "Add B." &&\n'> <'\n'> <'     echo AnotherSecond > C &&\n'> 
          <'     git update-index --add C &&\n'> <'     test_tick &&\n'> <'     git commit -m "Add C." &&\n'> <'\n'> <'     git checkout -f master &&\n'> 
          <'     rm -f B C &&\n'> <'\n'> <'     echo Third >> A &&\n'> <'     git update-index A &&\n'> <'     test_tick &&\n'> 
          <'     git commit -m "Modify A." &&\n'> <'\n'> <'     expr "$(echo $(git cherry master my-topic-branch) )" : "+ [^ ]* + .*"\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'check that cherry with limit returns only the top patch'>)} 
      {(SQ <'expr "$(echo $(git cherry master my-topic-branch my-topic-branch^1) )" : "+ [^ ]*"\n'>)}
    )
    (C {<test_expect_success>} 
      {(SQ <'cherry-pick one of the 2 patches, and check cherry recognized one and only one as new'>)} 
      {
        (SQ <'git cherry-pick my-topic-branch^0 &&\n'> 
          <'     echo $(git cherry master my-topic-branch) &&\n'> <'     expr "$(echo $(git cherry master my-topic-branch) )" : "+ [^ ]* - .*"\n'>
        )
      }
    )
    (C {<test_done>})
  ]
)