(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <"git pull message generation">)}
          spids: [4]
        )
      ]
      spids: [4]
    )
    (C {(.)} {(./test-lib.sh)})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:dollar) op:Equal rhs:{(SQ <"$Dollar">)} spids:[15])]
      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)})
  ]
)