(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          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]
        )
      ]
      spids: [13]
    )
    (C {(.)} {(./test-lib.sh)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_AUTHOR_EMAIL)
          op: Equal
          rhs: {(bogus_email_address)}
          spids: [26]
        )
      ]
      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)})
  ]
)