(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: {(SQ (Token id:Id.Lit_Chars val:'git p4 client view' span_id:6))}
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./lib-git-p4.sh)})
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'start p4d' span_id:18))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:22) 
          (Token id:Id.Lit_Chars val:'\tstart_p4d\n' span_id:23)
        )
      }
    )
    (command.ShFunction
      name: check_files_exist
      body: 
        (command.BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp]
              children: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:ok)
                      op: assign_op.Equal
                      rhs: {(0)}
                      spids: [46]
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:num)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Pound '$#')}
                      spids: [52]
                    )
                  ]
                )
                (command.ForEach
                  iter_name: arg
                  do_arg_iter: T
                  body: 
                    (command.DoGroup
                      children: [
                        (command.AndOr
                          ops: [Id.Op_DAmp]
                          children: [
                            (C {(test_path_is_file)} {(DQ ($ Id.VSub_DollarName '$arg'))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:ok)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (word_part.ArithSub
                                        anode: 
                                          (arith_expr.Binary
                                            op_id: Id.Arith_Plus
                                            left: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$ok')}
                                              )
                                            right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                                          )
                                      )
                                    }
                                  spids: [76]
                                )
                              ]
                            )
                          ]
                        )
                      ]
                    )
                )
                (C {(test)} {($ Id.VSub_DollarName '$ok')} {(-eq)} {($ Id.VSub_DollarName '$num')})
                (C {(test_line_count)} {(Id.Lit_Equals '=')} {($ Id.VSub_DollarName '$num')} {(files)})
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: client_verify
      body: 
        (command.BraceGroup
          children: [
            (command.Subshell
              command_list: 
                (command.CommandList
                  children: [
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp]
                      children: [
                        (C {(cd)} {(DQ ($ Id.VSub_DollarName '$cli'))})
                        (C {(p4)} {(sync)})
                        (command.Simple
                          words: [{(find)} {(.)} {(-type)} {(f)} {(Id.KW_Bang '!')} {(-name)} {(files)}]
                          redirects: [
                            (redir.Redir
                              op: (Token id:Id.Redir_Great val:'>' span_id:166)
                              fd: -1
                              arg_word: {(files)}
                            )
                          ]
                        )
                        (C {(check_files_exist)} {(DQ ($ Id.VSub_At '$@'))})
                      ]
                    )
                  ]
                )
            )
          ]
        )
    )
    (command.ShFunction
      name: git_verify
      body: 
        (command.BraceGroup
          children: [
            (command.Subshell
              command_list: 
                (command.CommandList
                  children: [
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DAmp]
                      children: [
                        (C {(cd)} {(DQ ($ Id.VSub_DollarName '$git'))})
                        (command.Simple
                          words: [{(git)} {(ls-files)}]
                          redirects: [
                            (redir.Redir
                              op: (Token id:Id.Redir_Great val:'>' span_id:216)
                              fd: -1
                              arg_word: {(files)}
                            )
                          ]
                        )
                        (C {(check_files_exist)} {(DQ ($ Id.VSub_At '$@'))})
                      ]
                    )
                  ]
                )
            )
          ]
        )
    )
    (command.ShFunction
      name: init_depot
      body: 
        (command.BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DAmp]
              children: [
                (command.ForEach
                  iter_name: d
                  iter_words: [{(1)} {(2)}]
                  do_arg_iter: F
                  body: 
                    (command.DoGroup
                      children: [
                        (command.AndOr
                          ops: [Id.Op_DAmp]
                          children: [
                            (C {(mkdir)} {(-p)} {(dir) ($ Id.VSub_DollarName '$d')})
                            (command.ForEach
                              iter_name: f
                              iter_words: [{(1)} {(2)}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.AndOr
                                      ops: [Id.Op_DAmp Id.Op_DAmp]
                                      children: [
                                        (command.Simple
                                          words: [
                                            {(echo)}
                                            {(dir) ($ Id.VSub_DollarName '$d') (/file) 
                                              ($ Id.VSub_DollarName '$d') ($ Id.VSub_DollarName '$f')
                                            }
                                          ]
                                          redirects: [
                                            (redir.Redir
                                              op: (Token id:Id.Redir_Great val:'>' span_id:310)
                                              fd: -1
                                              arg_word: 
                                                {(dir) ($ Id.VSub_DollarName '$d') (/file) 
                                                  ($ Id.VSub_DollarName '$d') ($ Id.VSub_DollarName '$f')
                                                }
                                            )
                                          ]
                                        )
                                        (C {(p4)} {(add)} 
                                          {(dir) ($ Id.VSub_DollarName '$d') (/file) 
                                            ($ Id.VSub_DollarName '$d') ($ Id.VSub_DollarName '$f')
                                          }
                                        )
                                        (C {(p4)} {(submit)} {(-d)} 
                                          {
                                            (DQ (dir) ($ Id.VSub_DollarName '$d') (/file) 
                                              ($ Id.VSub_DollarName '$d') ($ Id.VSub_DollarName '$f')
                                            )
                                          }
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                          ]
                        )
                      ]
                    )
                )
                (command.Simple
                  words: [{(find)} {(.)} {(-type)} {(f)} {(Id.KW_Bang '!')} {(-name)} {(files)}]
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_Great val:'>' span_id:370)
                      fd: -1
                      arg_word: {(files)}
                    )
                  ]
                )
                (C {(check_files_exist)} {(dir1/file11)} {(dir1/file12)} {(dir2/file21)} {(dir2/file22)})
              ]
            )
          ]
        )
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'init depot' span_id:394))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:398) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:399) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:400) 
          (Token id:Id.Lit_Chars val:'\t\tinit_depot\n' span_id:401) (Token id:Id.Lit_Chars val:'\t)\n' span_id:402)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'view wildcard %%n' span_id:412))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:416) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/%%%%1/sub/... //client/sub/%%%%1/..." &&\n'
            span_id: 417
          ) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:418) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit p4 clone --use-client-spec --dest="$git" //depot\n'
            span_id: 419
          )
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'view wildcard *' span_id:426))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:430) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/*/bar/... //client/*/bar/..." &&\n'
            span_id: 431
          ) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:432) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit p4 clone --use-client-spec --dest="$git" //depot\n'
            span_id: 433
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'wildcard ... in the middle' span_id:440))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:444) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/.../file11 //client/.../file11" &&\n'
            span_id: 445
          ) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:446) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit p4 clone --use-client-spec --dest="$git" //depot\n'
            span_id: 447
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'wildcard ... in the middle and at the end' span_id:454))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:458) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/.../a/... //client/.../a/..." &&\n'
            span_id: 459
          ) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:460) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit p4 clone --use-client-spec --dest="$git" //depot\n'
            span_id: 461
          )
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'basic map' span_id:468))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:472) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/dir1/... //client/cli1/..." &&\n'
            span_id: 473
          ) (Token id:Id.Lit_Chars val:'\tfiles="cli1/file11 cli1/file12" &&\n' span_id:474) 
          (Token id:Id.Lit_Chars val:'\tclient_verify $files &&\n' span_id:475) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:476) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit p4 clone --use-client-spec --dest="$git" //depot &&\n'
            span_id: 477
          ) (Token id:Id.Lit_Chars val:'\tgit_verify $files\n' span_id:478)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'client view with no mappings' span_id:485))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:489) 
          (Token id:Id.Lit_Chars val:'\tclient_view &&\n' span_id:490) (Token id:Id.Lit_Chars val:'\tclient_verify &&\n' span_id:491) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:492) (Token id:Id.Lit_Chars val:'\tgit p4 clone --use-client-spec --dest="$git" //depot &&\n' span_id:493) 
          (Token id:Id.Lit_Chars val:'\tgit_verify\n' span_id:494)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'single file map' span_id:501))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:505) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/dir1/file11 //client/file11" &&\n'
            span_id: 506
          ) (Token id:Id.Lit_Chars val:'\tfiles="file11" &&\n' span_id:507) 
          (Token id:Id.Lit_Chars val:'\tclient_verify $files &&\n' span_id:508) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:509) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit p4 clone --use-client-spec --dest="$git" //depot &&\n'
            span_id: 510
          ) (Token id:Id.Lit_Chars val:'\tgit_verify $files\n' span_id:511)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'later mapping takes precedence (entire repo)' span_id:518))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:522) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/dir1/... //client/cli1/..." \\\n'
            span_id: 523
          ) (Token id:Id.Lit_Chars val:'\t\t    "//depot/... //client/cli2/..." &&\n' span_id:524) 
          (Token
            id: Id.Lit_Chars
            val: '\tfiles="cli2/dir1/file11 cli2/dir1/file12\n'
            span_id: 525
          ) (Token id:Id.Lit_Chars val:'\t       cli2/dir2/file21 cli2/dir2/file22" &&\n' span_id:526) 
          (Token id:Id.Lit_Chars val:'\tclient_verify $files &&\n' span_id:527) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:528) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit p4 clone --use-client-spec --dest="$git" //depot &&\n'
            span_id: 529
          ) (Token id:Id.Lit_Chars val:'\tgit_verify $files\n' span_id:530)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'later mapping takes precedence (partial repo)' span_id:537))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:541) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/dir1/... //client/..." \\\n'
            span_id: 542
          ) (Token id:Id.Lit_Chars val:'\t\t    "//depot/dir2/... //client/..." &&\n' span_id:543) 
          (Token id:Id.Lit_Chars val:'\tfiles="file21 file22" &&\n' span_id:544) (Token id:Id.Lit_Chars val:'\tclient_verify $files &&\n' span_id:545) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:546) (Token id:Id.Lit_Chars val:'\tgit p4 clone --use-client-spec --dest="$git" //depot &&\n' span_id:547) 
          (Token id:Id.Lit_Chars val:'\tgit_verify $files\n' span_id:548)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'depot path matching rejected client path' span_id:570))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:574) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/dir1/... //client/cli3/..." \\\n'
            span_id: 575
          ) (Token id:Id.Lit_Chars val:'\t\t    "//depot/dir1/... //client/cli12/..." \\\n' span_id:576) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t    "//depot/dir2/... //client/cli12/..." &&\n'
            span_id: 577
          ) (Token id:Id.Lit_Chars val:'\tfiles="cli12/file21 cli12/file22" &&\n' span_id:578) 
          (Token id:Id.Lit_Chars val:'\tclient_verify $files &&\n' span_id:579) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:580) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit p4 clone --use-client-spec --dest="$git" //depot &&\n'
            span_id: 581
          ) (Token id:Id.Lit_Chars val:'\tgit_verify $files\n' span_id:582)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'exclusion wildcard, client rhs same (odd)' span_id:595))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:599) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/... //client/..." \\\n'
            span_id: 600
          ) (Token id:Id.Lit_Chars val:'\t\t    "-//depot/dir2/... //client/..." &&\n' span_id:601) 
          (Token id:Id.Lit_Chars val:'\tclient_verify &&\n' span_id:602) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:603) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit p4 clone --use-client-spec --dest="$git" //depot &&\n'
            span_id: 604
          ) (Token id:Id.Lit_Chars val:'\tgit_verify\n' span_id:605)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'exclusion wildcard, client rhs different (normal)'
            span_id: 612
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:616) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/... //client/..." \\\n'
            span_id: 617
          ) (Token id:Id.Lit_Chars val:'\t\t    "-//depot/dir2/... //client/dir2/..." &&\n' span_id:618) 
          (Token id:Id.Lit_Chars val:'\tfiles="dir1/file11 dir1/file12" &&\n' span_id:619) (Token id:Id.Lit_Chars val:'\tclient_verify $files &&\n' span_id:620) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:621) (Token id:Id.Lit_Chars val:'\tgit p4 clone --use-client-spec --dest="$git" //depot &&\n' span_id:622) 
          (Token id:Id.Lit_Chars val:'\tgit_verify $files\n' span_id:623)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'exclusion single file' span_id:630))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:634) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/... //client/..." \\\n'
            span_id: 635
          ) (Token id:Id.Lit_Chars val:'\t\t    "-//depot/dir2/file22 //client/file22" &&\n' span_id:636) 
          (Token
            id: Id.Lit_Chars
            val: '\tfiles="dir1/file11 dir1/file12 dir2/file21" &&\n'
            span_id: 637
          ) (Token id:Id.Lit_Chars val:'\tclient_verify $files &&\n' span_id:638) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:639) (Token id:Id.Lit_Chars val:'\tgit p4 clone --use-client-spec --dest="$git" //depot &&\n' span_id:640) 
          (Token id:Id.Lit_Chars val:'\tgit_verify $files\n' span_id:641)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'overlay wildcard' span_id:648))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:652) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/dir1/... //client/cli/..." \\\n'
            span_id: 653
          ) (Token id:Id.Lit_Chars val:'\t\t    "+//depot/dir2/... //client/cli/..." &&\n' span_id:654) 
          (Token
            id: Id.Lit_Chars
            val: '\tfiles="cli/file11 cli/file12 cli/file21 cli/file22" &&\n'
            span_id: 655
          ) (Token id:Id.Lit_Chars val:'\tclient_verify $files &&\n' span_id:656) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:657) (Token id:Id.Lit_Chars val:'\tgit p4 clone --use-client-spec --dest="$git" //depot &&\n' span_id:658) 
          (Token id:Id.Lit_Chars val:'\tgit_verify $files\n' span_id:659)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'overlay single file' span_id:666))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:670) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/dir1/... //client/cli/..." \\\n'
            span_id: 671
          ) (Token id:Id.Lit_Chars val:'\t\t    "+//depot/dir2/file21 //client/cli/file21" &&\n' span_id:672) 
          (Token
            id: Id.Lit_Chars
            val: '\tfiles="cli/file11 cli/file12 cli/file21" &&\n'
            span_id: 673
          ) (Token id:Id.Lit_Chars val:'\tclient_verify $files &&\n' span_id:674) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:675) (Token id:Id.Lit_Chars val:'\tgit p4 clone --use-client-spec --dest="$git" //depot &&\n' span_id:676) 
          (Token id:Id.Lit_Chars val:'\tgit_verify $files\n' span_id:677)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'exclusion with later inclusion' span_id:684))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:688) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/... //client/..." \\\n'
            span_id: 689
          ) (Token id:Id.Lit_Chars val:'\t\t    "-//depot/dir2/... //client/dir2/..." \\\n' span_id:690) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t    "//depot/dir2/... //client/dir2incl/..." &&\n'
            span_id: 691
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\tfiles="dir1/file11 dir1/file12 dir2incl/file21 dir2incl/file22" &&\n'
            span_id: 692
          ) (Token id:Id.Lit_Chars val:'\tclient_verify $files &&\n' span_id:693) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:694) (Token id:Id.Lit_Chars val:'\tgit p4 clone --use-client-spec --dest="$git" //depot &&\n' span_id:695) 
          (Token id:Id.Lit_Chars val:'\tgit_verify $files\n' span_id:696)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'quotes on rhs only' span_id:703))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:707) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/dir1/... \\"//client/cdir 1/...\\"" &&\n'
            span_id: 708
          ) (Token id:Id.Lit_Chars val:'\tclient_verify "cdir 1/file11" "cdir 1/file12" &&\n' span_id:709) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:710) (Token id:Id.Lit_Chars val:'\tgit p4 clone --use-client-spec --dest="$git" //depot &&\n' span_id:711) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit_verify "cdir 1/file11" "cdir 1/file12"\n'
            span_id: 712
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'clone --use-client-spec sets useClientSpec' span_id:732))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:736) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/... //client/..." &&\n'
            span_id: 737
          ) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:738) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit p4 clone --use-client-spec --dest="$git" //depot &&\n'
            span_id: 739
          ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:740) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:741) (Token id:Id.Lit_Chars val:'\t\tgit config --bool git-p4.useClientSpec >actual &&\n' span_id:742) 
          (Token id:Id.Lit_Chars val:'\t\techo true >true &&\n' span_id:743) (Token id:Id.Lit_Chars val:'\t\ttest_cmp actual true\n' span_id:744) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:745)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'subdir clone' span_id:755))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:759) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/... //client/..." &&\n'
            span_id: 760
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\tfiles="dir1/file11 dir1/file12 dir2/file21 dir2/file22" &&\n'
            span_id: 761
          ) (Token id:Id.Lit_Chars val:'\tclient_verify $files &&\n' span_id:762) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:763) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit p4 clone --use-client-spec --dest="$git" //depot/dir1 &&\n'
            span_id: 764
          ) (Token id:Id.Lit_Chars val:'\tgit_verify dir1/file11 dir1/file12\n' span_id:765)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'subdir clone, submit modify' span_id:781))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:785) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/... //client/..." &&\n'
            span_id: 786
          ) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:787) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit p4 clone --use-client-spec --dest="$git" //depot/dir1 &&\n'
            span_id: 788
          ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:789) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:790) (Token id:Id.Lit_Chars val:'\t\tgit config git-p4.skipSubmitEdit true &&\n' span_id:791) 
          (Token id:Id.Lit_Chars val:'\t\techo line >>dir1/file12 &&\n' span_id:792) (Token id:Id.Lit_Chars val:'\t\tgit add dir1/file12 &&\n' span_id:793) 
          (Token id:Id.Lit_Chars val:'\t\tgit commit -m dir1/file12 &&\n' span_id:794) (Token id:Id.Lit_Chars val:'\t\tgit p4 submit\n' span_id:795) 
          (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:796) (Token id:Id.Lit_Chars val:'\t(\n' span_id:797) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:798) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file dir1/file12 &&\n' span_id:799) 
          (Token id:Id.Lit_Chars val:'\t\ttest_line_count = 2 dir1/file12\n' span_id:800) (Token id:Id.Lit_Chars val:'\t)\n' span_id:801)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'subdir clone, submit add' span_id:808))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:812) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/... //client/..." &&\n'
            span_id: 813
          ) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:814) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit p4 clone --use-client-spec --dest="$git" //depot/dir1 &&\n'
            span_id: 815
          ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:816) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:817) (Token id:Id.Lit_Chars val:'\t\tgit config git-p4.skipSubmitEdit true &&\n' span_id:818) 
          (Token id:Id.Lit_Chars val:'\t\techo file13 >dir1/file13 &&\n' span_id:819) (Token id:Id.Lit_Chars val:'\t\tgit add dir1/file13 &&\n' span_id:820) 
          (Token id:Id.Lit_Chars val:'\t\tgit commit -m dir1/file13 &&\n' span_id:821) (Token id:Id.Lit_Chars val:'\t\tgit p4 submit\n' span_id:822) 
          (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:823) (Token id:Id.Lit_Chars val:'\t(\n' span_id:824) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:825) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file dir1/file13\n' span_id:826) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:827)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'subdir clone, submit delete' span_id:834))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:838) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/... //client/..." &&\n'
            span_id: 839
          ) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:840) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit p4 clone --use-client-spec --dest="$git" //depot/dir1 &&\n'
            span_id: 841
          ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:842) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:843) (Token id:Id.Lit_Chars val:'\t\tgit config git-p4.skipSubmitEdit true &&\n' span_id:844) 
          (Token id:Id.Lit_Chars val:'\t\tgit rm dir1/file12 &&\n' span_id:845) (Token id:Id.Lit_Chars val:'\t\tgit commit -m "delete dir1/file12" &&\n' span_id:846) 
          (Token id:Id.Lit_Chars val:'\t\tgit p4 submit\n' span_id:847) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:848) (Token id:Id.Lit_Chars val:'\t(\n' span_id:849) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:850) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_missing dir1/file12\n' span_id:851) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:852)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'subdir clone, submit copy' span_id:859))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:863) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/... //client/..." &&\n'
            span_id: 864
          ) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:865) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit p4 clone --use-client-spec --dest="$git" //depot/dir1 &&\n'
            span_id: 866
          ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:867) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:868) (Token id:Id.Lit_Chars val:'\t\tgit config git-p4.skipSubmitEdit true &&\n' span_id:869) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit config git-p4.detectCopies true &&\n'
            span_id: 870
          ) (Token id:Id.Lit_Chars val:'\t\tcp dir1/file11 dir1/file11a &&\n' span_id:871) 
          (Token id:Id.Lit_Chars val:'\t\tgit add dir1/file11a &&\n' span_id:872) (Token id:Id.Lit_Chars val:'\t\tgit commit -m "copy to dir1/file11a" &&\n' span_id:873) 
          (Token id:Id.Lit_Chars val:'\t\tgit p4 submit\n' span_id:874) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:875) (Token id:Id.Lit_Chars val:'\t(\n' span_id:876) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:877) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file dir1/file11a &&\n' span_id:878) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t! is_cli_file_writeable dir1/file11a\n'
            span_id: 879
          ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:880)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'subdir clone, submit rename' span_id:887))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:891) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/... //client/..." &&\n'
            span_id: 892
          ) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:893) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit p4 clone --use-client-spec --dest="$git" //depot/dir1 &&\n'
            span_id: 894
          ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:895) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:896) (Token id:Id.Lit_Chars val:'\t\tgit config git-p4.skipSubmitEdit true &&\n' span_id:897) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit config git-p4.detectRenames true &&\n'
            span_id: 898
          ) (Token id:Id.Lit_Chars val:'\t\tgit mv dir1/file13 dir1/file13a &&\n' span_id:899) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit commit -m "rename dir1/file13 to dir1/file13a" &&\n'
            span_id: 900
          ) (Token id:Id.Lit_Chars val:'\t\tgit p4 submit\n' span_id:901) 
          (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:902) (Token id:Id.Lit_Chars val:'\t(\n' span_id:903) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:904) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_missing dir1/file13 &&\n' span_id:905) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file dir1/file13a &&\n' span_id:906) (Token id:Id.Lit_Chars val:'\t\t! is_cli_file_writeable dir1/file13a\n' span_id:907) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:908)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'wildcard files submit back to p4, client-spec case'
            span_id: 918
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:922) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/... //client/..." &&\n'
            span_id: 923
          ) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:924) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit p4 clone --use-client-spec --dest="$git" //depot/dir1 &&\n'
            span_id: 925
          ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:926) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:927) (Token id:Id.Lit_Chars val:'\t\techo git-wild-hash >dir1/git-wild#hash &&\n' span_id:928) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tif test_have_prereq !MINGW,!CYGWIN\n'
            span_id: 929
          ) (Token id:Id.Lit_Chars val:'\t\tthen\n' span_id:930) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t\techo git-wild-star >dir1/git-wild\\*star\n'
            span_id: 931
          ) (Token id:Id.Lit_Chars val:'\t\tfi &&\n' span_id:932) 
          (Token
            id: Id.Lit_Chars
            val: '\t\techo git-wild-at >dir1/git-wild@at &&\n'
            span_id: 933
          ) (Token id:Id.Lit_Chars val:'\t\techo git-wild-percent >dir1/git-wild%percent &&\n' span_id:934) 
          (Token id:Id.Lit_Chars val:'\t\tgit add dir1/git-wild* &&\n' span_id:935) (Token id:Id.Lit_Chars val:'\t\tgit commit -m "add some wildcard filenames" &&\n' span_id:936) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit config git-p4.skipSubmitEditCheck true &&\n'
            span_id: 937
          ) (Token id:Id.Lit_Chars val:'\t\tgit p4 submit\n' span_id:938) 
          (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:939) (Token id:Id.Lit_Chars val:'\t(\n' span_id:940) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:941) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file dir1/git-wild#hash &&\n' span_id:942) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tif test_have_prereq !MINGW,!CYGWIN\n'
            span_id: 943
          ) (Token id:Id.Lit_Chars val:'\t\tthen\n' span_id:944) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t\ttest_path_is_file dir1/git-wild\\*star\n'
            span_id: 945
          ) (Token id:Id.Lit_Chars val:'\t\tfi &&\n' span_id:946) 
          (Token
            id: Id.Lit_Chars
            val: '\t\ttest_path_is_file dir1/git-wild@at &&\n'
            span_id: 947
          ) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file dir1/git-wild%percent\n' span_id:948) 
          (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:949) (Token id:Id.Lit_Chars val:'\t(\n' span_id:950) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t# delete these carefully, cannot just do "p4 delete"\n'
            span_id: 951
          ) (Token id:Id.Lit_Chars val:'\t\t# on files with wildcards; but git-p4 knows how\n' span_id:952) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:953) (Token id:Id.Lit_Chars val:'\t\tgit rm dir1/git-wild* &&\n' span_id:954) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit commit -m "clean up the wildcards" &&\n'
            span_id: 955
          ) (Token id:Id.Lit_Chars val:'\t\tgit p4 submit\n' span_id:956) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:957)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'reinit depot' span_id:964))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:968) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:969) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:970) 
          (Token id:Id.Lit_Chars val:'\t\trm files &&\n' span_id:971) (Token id:Id.Lit_Chars val:'\t\tp4 delete */* &&\n' span_id:972) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tp4 submit -d "delete all files" &&\n'
            span_id: 973
          ) (Token id:Id.Lit_Chars val:'\t\tinit_depot\n' span_id:974) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:975)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'overlay collision setup' span_id:1024))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1028) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/... //client/..." &&\n'
            span_id: 1029
          ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:1030) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:1031) (Token id:Id.Lit_Chars val:'\t\tp4 sync &&\n' span_id:1032) 
          (Token
            id: Id.Lit_Chars
            val: '\t\techo dir1/filecollide >dir1/filecollide &&\n'
            span_id: 1033
          ) (Token id:Id.Lit_Chars val:'\t\tp4 add dir1/filecollide &&\n' span_id:1034) 
          (Token id:Id.Lit_Chars val:'\t\tp4 submit -d dir1/filecollide &&\n' span_id:1035) (Token id:Id.Lit_Chars val:'\t\techo dir2/filecollide >dir2/filecollide &&\n' span_id:1036) 
          (Token id:Id.Lit_Chars val:'\t\tp4 add dir2/filecollide &&\n' span_id:1037) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d dir2/filecollide\n' span_id:1038) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:1039)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'overlay collision 1 to 2' span_id:1046))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1050) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/dir1/... //client/..." \\\n'
            span_id: 1051
          ) (Token id:Id.Lit_Chars val:'\t\t    "+//depot/dir2/... //client/..." &&\n' span_id:1052) 
          (Token
            id: Id.Lit_Chars
            val: '\tfiles="file11 file12 file21 file22 filecollide" &&\n'
            span_id: 1053
          ) (Token id:Id.Lit_Chars val:'\techo dir2/filecollide >actual &&\n' span_id:1054) 
          (Token id:Id.Lit_Chars val:'\tclient_verify $files &&\n' span_id:1055) (Token id:Id.Lit_Chars val:'\ttest_cmp actual "$cli"/filecollide &&\n' span_id:1056) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:1057) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit p4 clone --use-client-spec --dest="$git" //depot &&\n'
            span_id: 1058
          ) (Token id:Id.Lit_Chars val:'\tgit_verify $files &&\n' span_id:1059) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp actual "$git"/filecollide\n' span_id:1060)
        )
      }
    )
    (C {(test_expect_failure)} 
      {(SQ (Token id:Id.Lit_Chars val:'overlay collision 2 to 1' span_id:1067))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1071) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/dir2/... //client/..." \\\n'
            span_id: 1072
          ) (Token id:Id.Lit_Chars val:'\t\t    "+//depot/dir1/... //client/..." &&\n' span_id:1073) 
          (Token
            id: Id.Lit_Chars
            val: '\tfiles="file11 file12 file21 file22 filecollide" &&\n'
            span_id: 1074
          ) (Token id:Id.Lit_Chars val:'\techo dir1/filecollide >actual &&\n' span_id:1075) 
          (Token id:Id.Lit_Chars val:'\tclient_verify $files &&\n' span_id:1076) (Token id:Id.Lit_Chars val:'\ttest_cmp actual "$cli"/filecollide &&\n' span_id:1077) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:1078) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit p4 clone --use-client-spec --dest="$git" //depot &&\n'
            span_id: 1079
          ) (Token id:Id.Lit_Chars val:'\tgit_verify $files &&\n' span_id:1080) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp actual "$git"/filecollide\n' span_id:1081)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'overlay collision delete 2' span_id:1088))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1092) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/... //client/..." &&\n'
            span_id: 1093
          ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:1094) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:1095) (Token id:Id.Lit_Chars val:'\t\tp4 sync &&\n' span_id:1096) 
          (Token id:Id.Lit_Chars val:'\t\tp4 delete dir2/filecollide &&\n' span_id:1097) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "remove dir2/filecollide"\n' span_id:1098) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:1099)
        )
      }
    )
    (C {(test_expect_failure)} 
      {(SQ (Token id:Id.Lit_Chars val:'overlay collision 1 to 2, but 2 deleted' span_id:1109))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1113) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/dir1/... //client/..." \\\n'
            span_id: 1114
          ) (Token id:Id.Lit_Chars val:'\t\t    "+//depot/dir2/... //client/..." &&\n' span_id:1115) 
          (Token
            id: Id.Lit_Chars
            val: '\tfiles="file11 file12 file21 file22" &&\n'
            span_id: 1116
          ) (Token id:Id.Lit_Chars val:'\tclient_verify $files &&\n' span_id:1117) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:1118) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit p4 clone --use-client-spec --dest="$git" //depot &&\n'
            span_id: 1119
          ) (Token id:Id.Lit_Chars val:'\tgit_verify $files\n' span_id:1120)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'overlay collision update 1' span_id:1127))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1131) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/dir1/... //client/dir1/..." &&\n'
            span_id: 1132
          ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:1133) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:1134) (Token id:Id.Lit_Chars val:'\t\tp4 sync &&\n' span_id:1135) 
          (Token id:Id.Lit_Chars val:'\t\tp4 open dir1/filecollide &&\n' span_id:1136) (Token id:Id.Lit_Chars val:'\t\techo dir1/filecollide update >dir1/filecollide &&\n' span_id:1137) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tp4 submit -d "update dir1/filecollide"\n'
            span_id: 1138
          ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:1139)
        )
      }
    )
    (C {(test_expect_failure)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'overlay collision 1 to 2, but 2 deleted, then 1 updated'
            span_id: 1152
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1156) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/dir1/... //client/..." \\\n'
            span_id: 1157
          ) (Token id:Id.Lit_Chars val:'\t\t    "+//depot/dir2/... //client/..." &&\n' span_id:1158) 
          (Token
            id: Id.Lit_Chars
            val: '\tfiles="file11 file12 file21 file22" &&\n'
            span_id: 1159
          ) (Token id:Id.Lit_Chars val:'\tclient_verify $files &&\n' span_id:1160) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:1161) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit p4 clone --use-client-spec --dest="$git" //depot &&\n'
            span_id: 1162
          ) (Token id:Id.Lit_Chars val:'\tgit_verify $files\n' span_id:1163)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'overlay collision delete filecollides' span_id:1170))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1174) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/... //client/..." &&\n'
            span_id: 1175
          ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:1176) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:1177) (Token id:Id.Lit_Chars val:'\t\tp4 sync &&\n' span_id:1178) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tp4 delete dir1/filecollide dir2/filecollide &&\n'
            span_id: 1179
          ) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "remove filecollides"\n' span_id:1180) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:1181)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'overlay sync: add colA in dir1' span_id:1260))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1264) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/dir1/... //client/dir1/..." &&\n'
            span_id: 1265
          ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:1266) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:1267) (Token id:Id.Lit_Chars val:'\t\tp4 sync &&\n' span_id:1268) 
          (Token id:Id.Lit_Chars val:'\t\techo dir1/colA >dir1/colA &&\n' span_id:1269) (Token id:Id.Lit_Chars val:'\t\tp4 add dir1/colA &&\n' span_id:1270) 
          (Token id:Id.Lit_Chars val:'\t\tp4 submit -d dir1/colA\n' span_id:1271) (Token id:Id.Lit_Chars val:'\t)\n' span_id:1272)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'overlay sync: initial git checkout' span_id:1279))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1283) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/dir1/... //client/..." \\\n'
            span_id: 1284
          ) (Token id:Id.Lit_Chars val:'\t\t    "+//depot/dir2/... //client/..." &&\n' span_id:1285) 
          (Token
            id: Id.Lit_Chars
            val: '\tfiles="file11 file12 file21 file22 colA" &&\n'
            span_id: 1286
          ) (Token id:Id.Lit_Chars val:'\techo dir1/colA >actual &&\n' span_id:1287) 
          (Token id:Id.Lit_Chars val:'\tclient_verify $files &&\n' span_id:1288) (Token id:Id.Lit_Chars val:'\ttest_cmp actual "$cli"/colA &&\n' span_id:1289) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit p4 clone --use-client-spec --dest="$git" //depot &&\n'
            span_id: 1290
          ) (Token id:Id.Lit_Chars val:'\tgit_verify $files &&\n' span_id:1291) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp actual "$git"/colA\n' span_id:1292)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'overlay sync: add colA in dir2' span_id:1299))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1303) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/dir2/... //client/dir2/..." &&\n'
            span_id: 1304
          ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:1305) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:1306) (Token id:Id.Lit_Chars val:'\t\tp4 sync &&\n' span_id:1307) 
          (Token id:Id.Lit_Chars val:'\t\techo dir2/colA >dir2/colA &&\n' span_id:1308) (Token id:Id.Lit_Chars val:'\t\tp4 add dir2/colA &&\n' span_id:1309) 
          (Token id:Id.Lit_Chars val:'\t\tp4 submit -d dir2/colA\n' span_id:1310) (Token id:Id.Lit_Chars val:'\t)\n' span_id:1311)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'overlay sync: colA content switch' span_id:1318))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1322) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/dir1/... //client/..." \\\n'
            span_id: 1323
          ) (Token id:Id.Lit_Chars val:'\t\t    "+//depot/dir2/... //client/..." &&\n' span_id:1324) 
          (Token
            id: Id.Lit_Chars
            val: '\tfiles="file11 file12 file21 file22 colA" &&\n'
            span_id: 1325
          ) (Token id:Id.Lit_Chars val:'\techo dir2/colA >actual &&\n' span_id:1326) 
          (Token id:Id.Lit_Chars val:'\tclient_verify $files &&\n' span_id:1327) (Token id:Id.Lit_Chars val:'\ttest_cmp actual "$cli"/colA &&\n' span_id:1328) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:1329) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:1330) 
          (Token id:Id.Lit_Chars val:'\t\tgit p4 sync --use-client-spec &&\n' span_id:1331) (Token id:Id.Lit_Chars val:'\t\tgit merge --ff-only p4/master\n' span_id:1332) 
          (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:1333) (Token id:Id.Lit_Chars val:'\tgit_verify $files &&\n' span_id:1334) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp actual "$git"/colA\n' span_id:1335)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'overlay sync: add colB in dir1' span_id:1342))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1346) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/dir1/... //client/dir1/..." &&\n'
            span_id: 1347
          ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:1348) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:1349) (Token id:Id.Lit_Chars val:'\t\tp4 sync &&\n' span_id:1350) 
          (Token id:Id.Lit_Chars val:'\t\techo dir1/colB >dir1/colB &&\n' span_id:1351) (Token id:Id.Lit_Chars val:'\t\tp4 add dir1/colB &&\n' span_id:1352) 
          (Token id:Id.Lit_Chars val:'\t\tp4 submit -d dir1/colB\n' span_id:1353) (Token id:Id.Lit_Chars val:'\t)\n' span_id:1354)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'overlay sync: colB appears' span_id:1361))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1365) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/dir1/... //client/..." \\\n'
            span_id: 1366
          ) (Token id:Id.Lit_Chars val:'\t\t    "+//depot/dir2/... //client/..." &&\n' span_id:1367) 
          (Token
            id: Id.Lit_Chars
            val: '\tfiles="file11 file12 file21 file22 colA colB" &&\n'
            span_id: 1368
          ) (Token id:Id.Lit_Chars val:'\techo dir1/colB >actual &&\n' span_id:1369) 
          (Token id:Id.Lit_Chars val:'\tclient_verify $files &&\n' span_id:1370) (Token id:Id.Lit_Chars val:'\ttest_cmp actual "$cli"/colB &&\n' span_id:1371) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:1372) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:1373) 
          (Token id:Id.Lit_Chars val:'\t\tgit p4 sync --use-client-spec &&\n' span_id:1374) (Token id:Id.Lit_Chars val:'\t\tgit merge --ff-only p4/master\n' span_id:1375) 
          (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:1376) (Token id:Id.Lit_Chars val:'\tgit_verify $files &&\n' span_id:1377) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp actual "$git"/colB\n' span_id:1378)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'overlay sync: add/delete colB in dir2' span_id:1385))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1389) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/dir2/... //client/dir2/..." &&\n'
            span_id: 1390
          ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:1391) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:1392) (Token id:Id.Lit_Chars val:'\t\tp4 sync &&\n' span_id:1393) 
          (Token id:Id.Lit_Chars val:'\t\techo dir2/colB >dir2/colB &&\n' span_id:1394) (Token id:Id.Lit_Chars val:'\t\tp4 add dir2/colB &&\n' span_id:1395) 
          (Token id:Id.Lit_Chars val:'\t\tp4 submit -d dir2/colB &&\n' span_id:1396) (Token id:Id.Lit_Chars val:'\t\tp4 delete dir2/colB &&\n' span_id:1397) 
          (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "delete dir2/colB"\n' span_id:1398) (Token id:Id.Lit_Chars val:'\t)\n' span_id:1399)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'overlay sync: colB disappears' span_id:1406))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1410) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/dir1/... //client/..." \\\n'
            span_id: 1411
          ) (Token id:Id.Lit_Chars val:'\t\t    "+//depot/dir2/... //client/..." &&\n' span_id:1412) 
          (Token
            id: Id.Lit_Chars
            val: '\tfiles="file11 file12 file21 file22 colA" &&\n'
            span_id: 1413
          ) (Token id:Id.Lit_Chars val:'\tclient_verify $files &&\n' span_id:1414) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:1415) (Token id:Id.Lit_Chars val:'\t(\n' span_id:1416) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:1417) (Token id:Id.Lit_Chars val:'\t\tgit p4 sync --use-client-spec &&\n' span_id:1418) 
          (Token id:Id.Lit_Chars val:'\t\tgit merge --ff-only p4/master\n' span_id:1419) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:1420) 
          (Token id:Id.Lit_Chars val:'\tgit_verify $files\n' span_id:1421)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'overlay sync: cleanup' span_id:1428))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1432) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/... //client/..." &&\n'
            span_id: 1433
          ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:1434) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:1435) (Token id:Id.Lit_Chars val:'\t\tp4 sync &&\n' span_id:1436) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tp4 delete dir1/colA dir2/colA dir1/colB &&\n'
            span_id: 1437
          ) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "remove overlay sync files"\n' span_id:1438) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:1439)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'overlay sync swap: add colA in dir1' span_id:1518))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1522) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/dir1/... //client/dir1/..." &&\n'
            span_id: 1523
          ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:1524) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:1525) (Token id:Id.Lit_Chars val:'\t\tp4 sync &&\n' span_id:1526) 
          (Token id:Id.Lit_Chars val:'\t\techo dir1/colA >dir1/colA &&\n' span_id:1527) (Token id:Id.Lit_Chars val:'\t\tp4 add dir1/colA &&\n' span_id:1528) 
          (Token id:Id.Lit_Chars val:'\t\tp4 submit -d dir1/colA\n' span_id:1529) (Token id:Id.Lit_Chars val:'\t)\n' span_id:1530)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'overlay sync swap: initial git checkout' span_id:1537))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1541) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/dir2/... //client/..." \\\n'
            span_id: 1542
          ) (Token id:Id.Lit_Chars val:'\t\t    "+//depot/dir1/... //client/..." &&\n' span_id:1543) 
          (Token
            id: Id.Lit_Chars
            val: '\tfiles="file11 file12 file21 file22 colA" &&\n'
            span_id: 1544
          ) (Token id:Id.Lit_Chars val:'\techo dir1/colA >actual &&\n' span_id:1545) 
          (Token id:Id.Lit_Chars val:'\tclient_verify $files &&\n' span_id:1546) (Token id:Id.Lit_Chars val:'\ttest_cmp actual "$cli"/colA &&\n' span_id:1547) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit p4 clone --use-client-spec --dest="$git" //depot &&\n'
            span_id: 1548
          ) (Token id:Id.Lit_Chars val:'\tgit_verify $files &&\n' span_id:1549) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp actual "$git"/colA\n' span_id:1550)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'overlay sync swap: add colA in dir2' span_id:1557))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1561) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/dir2/... //client/dir2/..." &&\n'
            span_id: 1562
          ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:1563) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:1564) (Token id:Id.Lit_Chars val:'\t\tp4 sync &&\n' span_id:1565) 
          (Token id:Id.Lit_Chars val:'\t\techo dir2/colA >dir2/colA &&\n' span_id:1566) (Token id:Id.Lit_Chars val:'\t\tp4 add dir2/colA &&\n' span_id:1567) 
          (Token id:Id.Lit_Chars val:'\t\tp4 submit -d dir2/colA\n' span_id:1568) (Token id:Id.Lit_Chars val:'\t)\n' span_id:1569)
        )
      }
    )
    (C {(test_expect_failure)} 
      {(SQ (Token id:Id.Lit_Chars val:'overlay sync swap: colA no content switch' span_id:1576))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1580) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/dir2/... //client/..." \\\n'
            span_id: 1581
          ) (Token id:Id.Lit_Chars val:'\t\t    "+//depot/dir1/... //client/..." &&\n' span_id:1582) 
          (Token
            id: Id.Lit_Chars
            val: '\tfiles="file11 file12 file21 file22 colA" &&\n'
            span_id: 1583
          ) (Token id:Id.Lit_Chars val:'\techo dir1/colA >actual &&\n' span_id:1584) 
          (Token id:Id.Lit_Chars val:'\tclient_verify $files &&\n' span_id:1585) (Token id:Id.Lit_Chars val:'\ttest_cmp actual "$cli"/colA &&\n' span_id:1586) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:1587) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:1588) 
          (Token id:Id.Lit_Chars val:'\t\tgit p4 sync --use-client-spec &&\n' span_id:1589) (Token id:Id.Lit_Chars val:'\t\tgit merge --ff-only p4/master\n' span_id:1590) 
          (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:1591) (Token id:Id.Lit_Chars val:'\tgit_verify $files &&\n' span_id:1592) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp actual "$git"/colA\n' span_id:1593)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'overlay sync swap: add colB in dir1' span_id:1600))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1604) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/dir1/... //client/dir1/..." &&\n'
            span_id: 1605
          ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:1606) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:1607) (Token id:Id.Lit_Chars val:'\t\tp4 sync &&\n' span_id:1608) 
          (Token id:Id.Lit_Chars val:'\t\techo dir1/colB >dir1/colB &&\n' span_id:1609) (Token id:Id.Lit_Chars val:'\t\tp4 add dir1/colB &&\n' span_id:1610) 
          (Token id:Id.Lit_Chars val:'\t\tp4 submit -d dir1/colB\n' span_id:1611) (Token id:Id.Lit_Chars val:'\t)\n' span_id:1612)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'overlay sync swap: colB appears' span_id:1619))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1623) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/dir2/... //client/..." \\\n'
            span_id: 1624
          ) (Token id:Id.Lit_Chars val:'\t\t    "+//depot/dir1/... //client/..." &&\n' span_id:1625) 
          (Token
            id: Id.Lit_Chars
            val: '\tfiles="file11 file12 file21 file22 colA colB" &&\n'
            span_id: 1626
          ) (Token id:Id.Lit_Chars val:'\techo dir1/colB >actual &&\n' span_id:1627) 
          (Token id:Id.Lit_Chars val:'\tclient_verify $files &&\n' span_id:1628) (Token id:Id.Lit_Chars val:'\ttest_cmp actual "$cli"/colB &&\n' span_id:1629) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:1630) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:1631) 
          (Token id:Id.Lit_Chars val:'\t\tgit p4 sync --use-client-spec &&\n' span_id:1632) (Token id:Id.Lit_Chars val:'\t\tgit merge --ff-only p4/master\n' span_id:1633) 
          (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:1634) (Token id:Id.Lit_Chars val:'\tgit_verify $files &&\n' span_id:1635) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp actual "$git"/colB\n' span_id:1636)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'overlay sync swap: add/delete colB in dir2' span_id:1643))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1647) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/dir2/... //client/dir2/..." &&\n'
            span_id: 1648
          ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:1649) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:1650) (Token id:Id.Lit_Chars val:'\t\tp4 sync &&\n' span_id:1651) 
          (Token id:Id.Lit_Chars val:'\t\techo dir2/colB >dir2/colB &&\n' span_id:1652) (Token id:Id.Lit_Chars val:'\t\tp4 add dir2/colB &&\n' span_id:1653) 
          (Token id:Id.Lit_Chars val:'\t\tp4 submit -d dir2/colB &&\n' span_id:1654) (Token id:Id.Lit_Chars val:'\t\tp4 delete dir2/colB &&\n' span_id:1655) 
          (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "delete dir2/colB"\n' span_id:1656) (Token id:Id.Lit_Chars val:'\t)\n' span_id:1657)
        )
      }
    )
    (C {(test_expect_failure)} 
      {(SQ (Token id:Id.Lit_Chars val:'overlay sync swap: colB no change' span_id:1664))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1668) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/dir2/... //client/..." \\\n'
            span_id: 1669
          ) (Token id:Id.Lit_Chars val:'\t\t    "+//depot/dir1/... //client/..." &&\n' span_id:1670) 
          (Token
            id: Id.Lit_Chars
            val: '\tfiles="file11 file12 file21 file22 colA colB" &&\n'
            span_id: 1671
          ) (Token id:Id.Lit_Chars val:'\techo dir1/colB >actual &&\n' span_id:1672) 
          (Token id:Id.Lit_Chars val:'\tclient_verify $files &&\n' span_id:1673) (Token id:Id.Lit_Chars val:'\ttest_cmp actual "$cli"/colB &&\n' span_id:1674) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:1675) (Token id:Id.Lit_Chars val:'\t(\n' span_id:1676) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:1677) (Token id:Id.Lit_Chars val:'\t\tgit p4 sync --use-client-spec &&\n' span_id:1678) 
          (Token id:Id.Lit_Chars val:'\t\tgit merge --ff-only p4/master\n' span_id:1679) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:1680) 
          (Token id:Id.Lit_Chars val:'\tgit_verify $files &&\n' span_id:1681) (Token id:Id.Lit_Chars val:'\ttest_cmp actual "$cli"/colB\n' span_id:1682)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'overlay sync swap: cleanup' span_id:1689))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1693) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/... //client/..." &&\n'
            span_id: 1694
          ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:1695) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:1696) (Token id:Id.Lit_Chars val:'\t\tp4 sync &&\n' span_id:1697) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tp4 delete dir1/colA dir2/colA dir1/colB &&\n'
            span_id: 1698
          ) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "remove overlay sync files"\n' span_id:1699) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:1700)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rename files to introduce spaces' span_id:1737))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1741) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/... //client/..." &&\n'
            span_id: 1742
          ) (Token id:Id.Lit_Chars val:'\tclient_verify dir1/file11 dir1/file12 \\\n' span_id:1743) 
          (Token id:Id.Lit_Chars val:'\t\t      dir2/file21 dir2/file22 &&\n' span_id:1744) (Token id:Id.Lit_Chars val:'\t(\n' span_id:1745) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:1746) (Token id:Id.Lit_Chars val:'\t\tp4 open dir1/... &&\n' span_id:1747) 
          (Token id:Id.Lit_Chars val:'\t\tp4 move dir1/... "dir 1"/... &&\n' span_id:1748) (Token id:Id.Lit_Chars val:'\t\tp4 open dir2/... &&\n' span_id:1749) 
          (Token id:Id.Lit_Chars val:'\t\tp4 move dir2/... "dir 2"/... &&\n' span_id:1750) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "rename with spaces"\n' span_id:1751) 
          (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:1752) (Token id:Id.Lit_Chars val:'\tclient_verify "dir 1/file11" "dir 1/file12" \\\n' span_id:1753) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t      "dir 2/file21" "dir 2/file22"\n'
            span_id: 1754
          )
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'quotes on lhs only' span_id:1761))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1765) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "\\"//depot/dir 1/...\\" //client/cdir1/..." &&\n'
            span_id: 1766
          ) (Token id:Id.Lit_Chars val:'\tfiles="cdir1/file11 cdir1/file12" &&\n' span_id:1767) 
          (Token id:Id.Lit_Chars val:'\tclient_verify $files &&\n' span_id:1768) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:1769) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit p4 clone --use-client-spec --dest="$git" //depot &&\n'
            span_id: 1770
          ) (Token id:Id.Lit_Chars val:'\tclient_verify $files\n' span_id:1771)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'quotes on both sides' span_id:1778))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1782) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "\\"//depot/dir 1/...\\" \\"//client/cdir 1/...\\"" &&\n'
            span_id: 1783
          ) (Token id:Id.Lit_Chars val:'\tclient_verify "cdir 1/file11" "cdir 1/file12" &&\n' span_id:1784) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:1785) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit p4 clone --use-client-spec --dest="$git" //depot &&\n'
            span_id: 1786
          ) (Token id:Id.Lit_Chars val:'\tgit_verify "cdir 1/file11" "cdir 1/file12"\n' span_id:1787)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'kill p4d' span_id:1794))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1798) 
          (Token id:Id.Lit_Chars val:'\tkill_p4d\n' span_id:1799)
        )
      }
    )
    (C {(test_done)})
  ]
)