(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <"Clone repositories and map users">)}
          spids: [4]
        )
      ]
      spids: [4]
    )
    (C {(.)} {(./lib-git-p4.sh)})
    (C {(test_expect_success)} {(SQ <"start p4d">)} {(SQ <"\n"> <"\tstart_p4d\n">)})
    (C {(test_expect_success)} {(SQ <"Create a repo with different users">)} 
      {
        (SQ <"\n"> <"\tclient_view \"//depot/... //client/...\" &&\n"> <"\t(\n"> 
          <"\t\tcd \"$cli\" &&\n"> <"\n"> <"\t\t>author.txt &&\n"> <"\t\tp4 add author.txt &&\n"> 
          <"\t\tp4 submit -d \"Add file author\\\\n\" &&\n"> <"\n"> <"\t\tP4USER=mmax &&\n"> <"\t\t>max.txt &&\n"> <"\t\tp4 add max.txt &&\n"> 
          <"\t\tp4 submit -d \"Add file max\" &&\n"> <"\n"> <"\t\tP4USER=eri &&\n"> <"\t\t>moritz.txt &&\n"> <"\t\tp4 add moritz.txt &&\n"> 
          <"\t\tp4 submit -d \"Add file moritz\" &&\n"> <"\n"> <"\t\tP4USER=no &&\n"> <"\t\t>nobody.txt &&\n"> <"\t\tp4 add nobody.txt &&\n"> 
          <"\t\tp4 submit -d \"Add file nobody\"\n"> <"\t)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"Clone repo root path with all history">)} 
      {
        (SQ <"\n"> <"\tclient_view \"//depot/... //client/...\" &&\n"> 
          <"\ttest_when_finished cleanup_git &&\n"> <"\t(\n"> <"\t\tcd \"$git\" &&\n"> <"\t\tgit init . &&\n"> 
          <
"\t\tgit config --add git-p4.mapUser \"mmax = Max Musterman   <max@example.com> \"  &&\n"
          > <"\t\tgit config --add git-p4.mapUser \"  eri=Erika Musterman <erika@example.com>\" &&\n"> 
          <"\t\tgit p4 clone --use-client-spec --destination=\"$git\" //depot@all &&\n"> <"\t\tcat >expect <<-\\EOF &&\n"> <"\t\t\tno <no@client>\n"> 
          <"\t\t\tErika Musterman <erika@example.com>\n"> <"\t\t\tMax Musterman <max@example.com>\n"> <"\t\t\tDr. author <author@example.com>\n"> <"\t\tEOF\n"> 
          <"\t\tgit log --format=\"%an <%ae>\" >actual &&\n"> <"\t\ttest_cmp expect actual\n"> <"\t)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"kill p4d">)} {(SQ <"\n"> <"\tkill_p4d\n">)})
    (C {(test_done)})
  ]
)