(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'git pull message generation'>)}
          spids: [4]
        )
      ]
    )
    (C {<.>} {<'./test-lib.sh'>})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:dollar)
          op: assign_op.Equal
          rhs: {(SQ <'$Dollar'>)}
          spids: [15]
        )
      ]
    )
    (C {<test_expect_success>} {<setup>} 
      {
        (SQ <'\n'> <'\ttest_commit initial afile original &&\n'> <'\tgit clone . cloned &&\n'> <'\t(\n'> 
          <'\t\tcd cloned &&\n'> <'\t\techo added >bfile &&\n'> <'\t\tgit add bfile &&\n'> <'\t\ttest_tick &&\n'> 
          <'\t\tgit commit -m "add bfile"\n'> <'\t) &&\n'> <'\ttest_tick && test_tick &&\n'> <'\techo "second" >afile &&\n'> <'\tgit add afile &&\n'> 
          <'\tgit commit -m "second commit" &&\n'> <'\techo "original $dollar" >afile &&\n'> <'\tgit add afile &&\n'> 
          <'\tgit commit -m "do not clobber $dollar signs"\n'>
        )
      }
    )
    (C {<test_expect_success>} {<pull>} 
      {
        (SQ <'\n'> <'(\n'> <'\tcd cloned &&\n'> <'\tgit pull --log &&\n'> <'\tgit log -2 &&\n'> 
          <'\tgit cat-file commit HEAD >result &&\n'> <'\tgrep Dollar result\n'> <')\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'--log=1 limits shortlog length'>)} 
      {
        (SQ <'\n'> <'(\n'> <'\tcd cloned &&\n'> <'\tgit reset --hard HEAD^ &&\n'> 
          <'\ttest "$(cat afile)" = original &&\n'> <'\ttest "$(cat bfile)" = added &&\n'> <'\tgit pull --log=1 &&\n'> <'\tgit log -3 &&\n'> 
          <'\tgit cat-file commit HEAD >result &&\n'> <'\tgrep Dollar result &&\n'> <'\t! grep "second commit" result\n'> <')\n'>
        )
      }
    )
    (C {<test_done>})
  ]
)