(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'test_description='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'test_description='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test_description='> name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'Clone repositories and keep empty commits'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {<'./lib-git-p4.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [{<test_expect_success>} {(SQ <'start p4d'>)} {(SQ <'\n'> <'\tstart_p4d\n'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'Create a repo'>)}
        {
          (SQ <'\n'> <'\tclient_view "//depot/... //client/..." &&\n'> <'\t(\n'> <'\t\tcd "$cli" &&\n'> 
            <'\n'> <'\t\tmkdir -p subdir &&\n'> <'\n'> <'\t\t>subdir/file1.txt &&\n'> <'\t\tp4 add subdir/file1.txt &&\n'> 
            <'\t\tp4 submit -d "Add file 1" &&\n'> <'\n'> <'\t\t>file2.txt &&\n'> <'\t\tp4 add file2.txt &&\n'> <'\t\tp4 submit -d "Add file 2" &&\n'> 
            <'\n'> <'\t\t>subdir/file3.txt &&\n'> <'\t\tp4 add subdir/file3.txt &&\n'> 
            <'\t\tp4 submit -d "Add file 3" &&\n'> <'\n'> <'\t\t>file4.txt &&\n'> <'\t\tp4 add file4.txt &&\n'> <'\t\tp4 submit -d "Add file 4" &&\n'> 
            <'\n'> <'\t\tp4 delete subdir/file3.txt &&\n'> <'\t\tp4 submit -d "Remove file 3" &&\n'> <'\n'> 
            <'\t\tp4 delete file4.txt &&\n'> <'\t\tp4 submit -d "Remove file 4"\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<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 p4 clone --use-client-spec --destination="$git" //depot@all &&\n'> <'\t\tcat >expect <<-\\EOF &&\n'> <'\t\tRemove file 4\n'> 
            <'\t\t[git-p4: depot-paths = "//depot/": change = 6]\n'> <'\n'> <'\t\tRemove file 3\n'> <'\t\t[git-p4: depot-paths = "//depot/": change = 5]\n'> <'\n'> 
            <'\t\tAdd file 4\n'> <'\t\t[git-p4: depot-paths = "//depot/": change = 4]\n'> <'\n'> <'\t\tAdd file 3\n'> 
            <'\t\t[git-p4: depot-paths = "//depot/": change = 3]\n'> <'\n'> <'\t\tAdd file 2\n'> <'\t\t[git-p4: depot-paths = "//depot/": change = 2]\n'> <'\n'> 
            <'\t\tAdd file 1\n'> <'\t\t[git-p4: depot-paths = "//depot/": change = 1]\n'> <'\n'> <'\t\tEOF\n'> 
            <'\t\tgit log --format=%B >actual &&\n'> <'\t\ttest_cmp expect actual\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'Clone repo subdir with all history but keep empty commits'>)}
        {
          (SQ <'\n'> <'\tclient_view "//depot/subdir/... //client/subdir/..." &&\n'> 
            <'\ttest_when_finished cleanup_git &&\n'> <'\t(\n'> <'\t\tcd "$git" &&\n'> <'\t\tgit init . &&\n'> 
            <'\t\tgit config git-p4.keepEmptyCommits true &&\n'> <'\t\tgit p4 clone --use-client-spec --destination="$git" //depot@all &&\n'> 
            <'\t\tcat >expect <<-\\EOF &&\n'> <'\t\tRemove file 4\n'> <'\t\t[git-p4: depot-paths = "//depot/": change = 6]\n'> <'\n'> 
            <'\t\tRemove file 3\n'> <'\t\t[git-p4: depot-paths = "//depot/": change = 5]\n'> <'\n'> <'\t\tAdd file 4\n'> 
            <'\t\t[git-p4: depot-paths = "//depot/": change = 4]\n'> <'\n'> <'\t\tAdd file 3\n'> <'\t\t[git-p4: depot-paths = "//depot/": change = 3]\n'> <'\n'> 
            <'\t\tAdd file 2\n'> <'\t\t[git-p4: depot-paths = "//depot/": change = 2]\n'> <'\n'> <'\t\tAdd file 1\n'> 
            <'\t\t[git-p4: depot-paths = "//depot/": change = 1]\n'> <'\n'> <'\t\tEOF\n'> <'\t\tgit log --format=%B >actual &&\n'> <'\t\ttest_cmp expect actual\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'Clone repo subdir with all history'>)}
        {
          (SQ <'\n'> <'\tclient_view "//depot/subdir/... //client/subdir/..." &&\n'> 
            <'\ttest_when_finished cleanup_git &&\n'> <'\t(\n'> <'\t\tcd "$git" &&\n'> <'\t\tgit init . &&\n'> 
            <'\t\tgit p4 clone --use-client-spec --destination="$git" --verbose //depot@all &&\n'> <'\t\tcat >expect <<-\\EOF &&\n'> <'\t\tRemove file 3\n'> 
            <'\t\t[git-p4: depot-paths = "//depot/": change = 5]\n'> <'\n'> <'\t\tAdd file 3\n'> <'\t\t[git-p4: depot-paths = "//depot/": change = 3]\n'> <'\n'> 
            <'\t\tAdd file 1\n'> <'\t\t[git-p4: depot-paths = "//depot/": change = 1]\n'> <'\n'> <'\t\tEOF\n'> 
            <'\t\tgit log --format=%B >actual &&\n'> <'\t\ttest_cmp expect actual\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [{<test_expect_success>} {(SQ <'kill p4d'>)} {(SQ <'\n'> <'\tkill_p4d\n'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_done>
      more_env: []
      words: [{<test_done>}]
      redirects: []
      do_fork: T
    )
  ]
)