(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 tests for p4 branches' 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)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'basic p4 branches' span_id:63))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:67) (Token id:Id.Lit_Chars val:'\t(\n' span_id:68) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:69) (Token id:Id.Lit_Chars val:'\t\tmkdir -p main &&\n' span_id:70) 
          (Token id:Id.Lit_Chars val:'\n' span_id:71) (Token id:Id.Lit_Chars val:'\t\techo f1 >main/f1 &&\n' span_id:72) 
          (Token id:Id.Lit_Chars val:'\t\tp4 add main/f1 &&\n' span_id:73) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "main/f1" &&\n' span_id:74) 
          (Token id:Id.Lit_Chars val:'\n' span_id:75) (Token id:Id.Lit_Chars val:'\t\techo f2 >main/f2 &&\n' span_id:76) 
          (Token id:Id.Lit_Chars val:'\t\tp4 add main/f2 &&\n' span_id:77) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "main/f2" &&\n' span_id:78) 
          (Token id:Id.Lit_Chars val:'\n' span_id:79) (Token id:Id.Lit_Chars val:'\t\tp4 integrate //depot/main/... //depot/branch1/... &&\n' span_id:80) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tp4 submit -d "integrate main to branch1" &&\n'
            span_id: 81
          ) (Token id:Id.Lit_Chars val:'\n' span_id:82) 
          (Token id:Id.Lit_Chars val:'\t\techo f4 >main/f4 &&\n' span_id:83) (Token id:Id.Lit_Chars val:'\t\tp4 add main/f4 &&\n' span_id:84) 
          (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "main/f4" &&\n' span_id:85) (Token id:Id.Lit_Chars val:'\n' span_id:86) 
          (Token id:Id.Lit_Chars val:'\t\techo f5 >branch1/f5 &&\n' span_id:87) (Token id:Id.Lit_Chars val:'\t\tp4 add branch1/f5 &&\n' span_id:88) 
          (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "branch1/f5" &&\n' span_id:89) (Token id:Id.Lit_Chars val:'\n' span_id:90) 
          (Token id:Id.Lit_Chars val:'\t\tp4 branch -i <<-EOF &&\n' span_id:91) (Token id:Id.Lit_Chars val:'\t\tBranch: branch2\n' span_id:92) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tView: //depot/main/... //depot/branch2/...\n'
            span_id: 93
          ) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:94) (Token id:Id.Lit_Chars val:'\n' span_id:95) 
          (Token id:Id.Lit_Chars val:'\t\tp4 integrate -b branch2 &&\n' span_id:96) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "integrate main to branch2" &&\n' span_id:97) 
          (Token id:Id.Lit_Chars val:'\n' span_id:98) (Token id:Id.Lit_Chars val:'\t\techo f7 >branch2/f7 &&\n' span_id:99) 
          (Token id:Id.Lit_Chars val:'\t\tp4 add branch2/f7 &&\n' span_id:100) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "branch2/f7" &&\n' span_id:101) 
          (Token id:Id.Lit_Chars val:'\n' span_id:102) (Token id:Id.Lit_Chars val:'\t\techo f8 >main/f8 &&\n' span_id:103) 
          (Token id:Id.Lit_Chars val:'\t\tp4 add main/f8 &&\n' span_id:104) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "main/f8"\n' span_id:105) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:106)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'import main, no branch detection' span_id:113))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:117) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:118) (Token id:Id.Lit_Chars val:'\tgit p4 clone --dest="$git" //depot/main@all &&\n' span_id:119) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:120) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:121) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit log --oneline --graph --decorate --all &&\n'
            span_id: 122
          ) (Token id:Id.Lit_Chars val:'\t\tgit rev-list master >wc &&\n' span_id:123) 
          (Token id:Id.Lit_Chars val:'\t\ttest_line_count = 4 wc\n' span_id:124) (Token id:Id.Lit_Chars val:'\t)\n' span_id:125)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'import branch1, no branch detection' span_id:132))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:136) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:137) (Token id:Id.Lit_Chars val:'\tgit p4 clone --dest="$git" //depot/branch1@all &&\n' span_id:138) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:139) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:140) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit log --oneline --graph --decorate --all &&\n'
            span_id: 141
          ) (Token id:Id.Lit_Chars val:'\t\tgit rev-list master >wc &&\n' span_id:142) 
          (Token id:Id.Lit_Chars val:'\t\ttest_line_count = 2 wc\n' span_id:143) (Token id:Id.Lit_Chars val:'\t)\n' span_id:144)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'import branch2, no branch detection' span_id:151))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:155) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:156) (Token id:Id.Lit_Chars val:'\tgit p4 clone --dest="$git" //depot/branch2@all &&\n' span_id:157) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:158) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:159) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit log --oneline --graph --decorate --all &&\n'
            span_id: 160
          ) (Token id:Id.Lit_Chars val:'\t\tgit rev-list master >wc &&\n' span_id:161) 
          (Token id:Id.Lit_Chars val:'\t\ttest_line_count = 2 wc\n' span_id:162) (Token id:Id.Lit_Chars val:'\t)\n' span_id:163)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'import depot, no branch detection' span_id:170))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:174) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:175) (Token id:Id.Lit_Chars val:'\tgit p4 clone --dest="$git" //depot@all &&\n' span_id:176) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:177) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:178) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit log --oneline --graph --decorate --all &&\n'
            span_id: 179
          ) (Token id:Id.Lit_Chars val:'\t\tgit rev-list master >wc &&\n' span_id:180) 
          (Token id:Id.Lit_Chars val:'\t\ttest_line_count = 8 wc\n' span_id:181) (Token id:Id.Lit_Chars val:'\t)\n' span_id:182)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'import depot, branch detection' span_id:189))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:193) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:194) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit p4 clone --dest="$git" --detect-branches //depot@all &&\n'
            span_id: 195
          ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:196) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:197) (Token id:Id.Lit_Chars val:'\n' span_id:198) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit log --oneline --graph --decorate --all &&\n'
            span_id: 199
          ) (Token id:Id.Lit_Chars val:'\n' span_id:200) 
          (Token id:Id.Lit_Chars val:'\t\t# 4 main commits\n' span_id:201) (Token id:Id.Lit_Chars val:'\t\tgit rev-list master >wc &&\n' span_id:202) 
          (Token id:Id.Lit_Chars val:'\t\ttest_line_count = 4 wc &&\n' span_id:203) (Token id:Id.Lit_Chars val:'\n' span_id:204) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t# 3 main, 1 integrate, 1 on branch2\n'
            span_id: 205
          ) (Token id:Id.Lit_Chars val:'\t\tgit rev-list p4/depot/branch2 >wc &&\n' span_id:206) 
          (Token id:Id.Lit_Chars val:'\t\ttest_line_count = 5 wc &&\n' span_id:207) (Token id:Id.Lit_Chars val:'\n' span_id:208) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t# no branch1, since no p4 branch created for it\n'
            span_id: 209
          ) (Token id:Id.Lit_Chars val:'\t\ttest_must_fail git show-ref p4/depot/branch1\n' span_id:210) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:211)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'import depot, branch detection, branchList branch definition'
            span_id: 218
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:222) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:223) (Token id:Id.Lit_Chars val:'\ttest_create_repo "$git" &&\n' span_id:224) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:225) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:226) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit config git-p4.branchList main:branch1 &&\n'
            span_id: 227
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit p4 clone --dest=. --detect-branches //depot@all &&\n'
            span_id: 228
          ) (Token id:Id.Lit_Chars val:'\n' span_id:229) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit log --oneline --graph --decorate --all &&\n'
            span_id: 230
          ) (Token id:Id.Lit_Chars val:'\n' span_id:231) 
          (Token id:Id.Lit_Chars val:'\t\t# 4 main commits\n' span_id:232) (Token id:Id.Lit_Chars val:'\t\tgit rev-list master >wc &&\n' span_id:233) 
          (Token id:Id.Lit_Chars val:'\t\ttest_line_count = 4 wc &&\n' span_id:234) (Token id:Id.Lit_Chars val:'\n' span_id:235) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t# 3 main, 1 integrate, 1 on branch2\n'
            span_id: 236
          ) (Token id:Id.Lit_Chars val:'\t\tgit rev-list p4/depot/branch2 >wc &&\n' span_id:237) 
          (Token id:Id.Lit_Chars val:'\t\ttest_line_count = 5 wc &&\n' span_id:238) (Token id:Id.Lit_Chars val:'\n' span_id:239) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t# 2 main, 1 integrate, 1 on branch1\n'
            span_id: 240
          ) (Token id:Id.Lit_Chars val:'\t\tgit rev-list p4/depot/branch1 >wc &&\n' span_id:241) 
          (Token id:Id.Lit_Chars val:'\t\ttest_line_count = 4 wc\n' span_id:242) (Token id:Id.Lit_Chars val:'\t)\n' span_id:243)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'restart p4d' span_id:250))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:254) 
          (Token id:Id.Lit_Chars val:'\tkill_p4d &&\n' span_id:255) (Token id:Id.Lit_Chars val:'\tstart_p4d\n' span_id:256)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'add simple p4 branches' span_id:290))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:294) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:295) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:296) 
          (Token id:Id.Lit_Chars val:'\t\tmkdir branch1 &&\n' span_id:297) (Token id:Id.Lit_Chars val:'\t\tcd branch1 &&\n' span_id:298) 
          (Token id:Id.Lit_Chars val:'\t\techo file1 >file1 &&\n' span_id:299) (Token id:Id.Lit_Chars val:'\t\techo file2 >file2 &&\n' span_id:300) 
          (Token id:Id.Lit_Chars val:'\t\tp4 add file1 file2 &&\n' span_id:301) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "Create branch1" &&\n' span_id:302) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tp4 integrate //depot/branch1/... //depot/branch2/... &&\n'
            span_id: 303
          ) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "Integrate branch2 from branch1" &&\n' span_id:304) 
          (Token id:Id.Lit_Chars val:'\t\techo file3 >file3 &&\n' span_id:305) (Token id:Id.Lit_Chars val:'\t\tp4 add file3 &&\n' span_id:306) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tp4 submit -d "add file3 in branch1" &&\n'
            span_id: 307
          ) (Token id:Id.Lit_Chars val:'\t\tp4 open file2 &&\n' span_id:308) 
          (Token id:Id.Lit_Chars val:'\t\techo update >>file2 &&\n' span_id:309) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "update file2 in branch1" &&\n' span_id:310) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tp4 integrate //depot/branch1/... //depot/branch3/... &&\n'
            span_id: 311
          ) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "Integrate branch3 from branch1"\n' span_id:312) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:313)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'git p4 clone simple branches' span_id:332))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:336) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:337) (Token id:Id.Lit_Chars val:'\ttest_create_repo "$git" &&\n' span_id:338) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:339) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:340) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit config git-p4.branchList branch1:branch2 &&\n'
            span_id: 341
          ) (Token id:Id.Lit_Chars val:'\t\tgit config --add git-p4.branchList branch1:branch3 &&\n' span_id:342) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit p4 clone --dest=. --detect-branches //depot@all &&\n'
            span_id: 343
          ) (Token id:Id.Lit_Chars val:'\t\tgit log --all --graph --decorate --stat &&\n' span_id:344) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit reset --hard p4/depot/branch1 &&\n'
            span_id: 345
          ) (Token id:Id.Lit_Chars val:'\t\ttest -f file1 &&\n' span_id:346) 
          (Token id:Id.Lit_Chars val:'\t\ttest -f file2 &&\n' span_id:347) (Token id:Id.Lit_Chars val:'\t\ttest -f file3 &&\n' span_id:348) 
          (Token id:Id.Lit_Chars val:'\t\tgrep update file2 &&\n' span_id:349) (Token id:Id.Lit_Chars val:'\t\tgit reset --hard p4/depot/branch2 &&\n' span_id:350) 
          (Token id:Id.Lit_Chars val:'\t\ttest -f file1 &&\n' span_id:351) (Token id:Id.Lit_Chars val:'\t\ttest -f file2 &&\n' span_id:352) 
          (Token id:Id.Lit_Chars val:'\t\ttest ! -f file3 &&\n' span_id:353) (Token id:Id.Lit_Chars val:'\t\t! grep update file2 &&\n' span_id:354) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit reset --hard p4/depot/branch3 &&\n'
            span_id: 355
          ) (Token id:Id.Lit_Chars val:'\t\ttest -f file1 &&\n' span_id:356) 
          (Token id:Id.Lit_Chars val:'\t\ttest -f file2 &&\n' span_id:357) (Token id:Id.Lit_Chars val:'\t\ttest -f file3 &&\n' span_id:358) 
          (Token id:Id.Lit_Chars val:'\t\tgrep update file2 &&\n' span_id:359) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:360) 
          (Token id:Id.Lit_Chars val:'\t\tcd branch1 &&\n' span_id:361) (Token id:Id.Lit_Chars val:'\t\tp4 edit file2 &&\n' span_id:362) 
          (Token id:Id.Lit_Chars val:'\t\techo file2_ >>file2 &&\n' span_id:363) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "update file2 in branch1" &&\n' span_id:364) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:365) (Token id:Id.Lit_Chars val:'\t\tgit reset --hard p4/depot/branch1 &&\n' span_id:366) 
          (Token id:Id.Lit_Chars val:'\t\tgit p4 rebase &&\n' span_id:367) (Token id:Id.Lit_Chars val:'\t\tgrep file2_ file2\n' span_id:368) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:369)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'git p4 add complex branches' span_id:442))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:446) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:447) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:448) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tchangelist=$(p4 changes -m1 //depot/... | cut -d" " -f2) &&\n'
            span_id: 449
          ) (Token id:Id.Lit_Chars val:'\t\tchangelist=$(($changelist - 5)) &&\n' span_id:450) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tp4 integrate //depot/branch1/...@$changelist //depot/branch4/... &&\n'
            span_id: 451
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tp4 submit -d "Integrate branch4 from branch1@${changelist}" &&\n'
            span_id: 452
          ) (Token id:Id.Lit_Chars val:'\t\tchangelist=$(($changelist + 2)) &&\n' span_id:453) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tp4 integrate //depot/branch1/...@$changelist //depot/branch5/... &&\n'
            span_id: 454
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tp4 submit -d "Integrate branch5 from branch1@${changelist}"\n'
            span_id: 455
          ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:456)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'git p4 clone complex branches' span_id:472))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:476) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:477) (Token id:Id.Lit_Chars val:'\ttest_create_repo "$git" &&\n' span_id:478) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:479) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:480) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit config git-p4.branchList branch1:branch2 &&\n'
            span_id: 481
          ) (Token id:Id.Lit_Chars val:'\t\tgit config --add git-p4.branchList branch1:branch3 &&\n' span_id:482) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit config --add git-p4.branchList branch1:branch4 &&\n'
            span_id: 483
          ) (Token id:Id.Lit_Chars val:'\t\tgit config --add git-p4.branchList branch1:branch5 &&\n' span_id:484) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit p4 clone --dest=. --detect-branches //depot@all &&\n'
            span_id: 485
          ) (Token id:Id.Lit_Chars val:'\t\tgit log --all --graph --decorate --stat &&\n' span_id:486) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit reset --hard p4/depot/branch1 &&\n'
            span_id: 487
          ) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file1 &&\n' span_id:488) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file2 &&\n' span_id:489) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file3 &&\n' span_id:490) 
          (Token id:Id.Lit_Chars val:'\t\tgrep update file2 &&\n' span_id:491) (Token id:Id.Lit_Chars val:'\t\tgit reset --hard p4/depot/branch2 &&\n' span_id:492) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file1 &&\n' span_id:493) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file2 &&\n' span_id:494) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_missing file3 &&\n' span_id:495) (Token id:Id.Lit_Chars val:'\t\t! grep update file2 &&\n' span_id:496) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit reset --hard p4/depot/branch3 &&\n'
            span_id: 497
          ) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file1 &&\n' span_id:498) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file2 &&\n' span_id:499) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file3 &&\n' span_id:500) 
          (Token id:Id.Lit_Chars val:'\t\tgrep update file2 &&\n' span_id:501) (Token id:Id.Lit_Chars val:'\t\tgit reset --hard p4/depot/branch4 &&\n' span_id:502) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file1 &&\n' span_id:503) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file2 &&\n' span_id:504) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_missing file3 &&\n' span_id:505) (Token id:Id.Lit_Chars val:'\t\t! grep update file2 &&\n' span_id:506) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit reset --hard p4/depot/branch5 &&\n'
            span_id: 507
          ) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file1 &&\n' span_id:508) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file2 &&\n' span_id:509) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file3 &&\n' span_id:510) 
          (Token id:Id.Lit_Chars val:'\t\t! grep update file2 &&\n' span_id:511) (Token id:Id.Lit_Chars val:'\t\ttest_must_fail git show-ref --verify refs/git-p4-tmp\n' span_id:512) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:513)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'git p4 submit to two branches in a single changelist'
            span_id: 523
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:527) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:528) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:529) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tp4 integrate //depot/branch3/file3 //depot/branch4/file3 &&\n'
            span_id: 530
          ) (Token id:Id.Lit_Chars val:'\t\tp4 delete //depot/branch3/file3 &&\n' span_id:531) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tp4 submit -d "Move branch3/file3 to branch4/file3"\n'
            span_id: 532
          ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:533)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'git p4 sync changes to two branches in the same changelist'
            span_id: 546
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:550) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:551) (Token id:Id.Lit_Chars val:'\ttest_create_repo "$git" &&\n' span_id:552) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:553) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:554) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit config git-p4.branchList branch1:branch2 &&\n'
            span_id: 555
          ) (Token id:Id.Lit_Chars val:'\t\tgit config --add git-p4.branchList branch1:branch3 &&\n' span_id:556) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit config --add git-p4.branchList branch1:branch4 &&\n'
            span_id: 557
          ) (Token id:Id.Lit_Chars val:'\t\tgit config --add git-p4.branchList branch1:branch5 &&\n' span_id:558) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit p4 clone --dest=. --detect-branches //depot@all &&\n'
            span_id: 559
          ) (Token id:Id.Lit_Chars val:'\t\tgit log --all --graph --decorate --stat &&\n' span_id:560) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit reset --hard p4/depot/branch1 &&\n'
            span_id: 561
          ) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file1 &&\n' span_id:562) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file2 &&\n' span_id:563) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file3 &&\n' span_id:564) 
          (Token id:Id.Lit_Chars val:'\t\tgrep update file2 &&\n' span_id:565) (Token id:Id.Lit_Chars val:'\t\tgit reset --hard p4/depot/branch2 &&\n' span_id:566) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file1 &&\n' span_id:567) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file2 &&\n' span_id:568) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_missing file3 &&\n' span_id:569) (Token id:Id.Lit_Chars val:'\t\t! grep update file2 &&\n' span_id:570) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit reset --hard p4/depot/branch3 &&\n'
            span_id: 571
          ) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file1 &&\n' span_id:572) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file2 &&\n' span_id:573) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_missing file3 &&\n' span_id:574) 
          (Token id:Id.Lit_Chars val:'\t\tgrep update file2 &&\n' span_id:575) (Token id:Id.Lit_Chars val:'\t\tgit reset --hard p4/depot/branch4 &&\n' span_id:576) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file1 &&\n' span_id:577) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file2 &&\n' span_id:578) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file3 &&\n' span_id:579) (Token id:Id.Lit_Chars val:'\t\t! grep update file2 &&\n' span_id:580) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit reset --hard p4/depot/branch5 &&\n'
            span_id: 581
          ) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file1 &&\n' span_id:582) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file2 &&\n' span_id:583) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file3 &&\n' span_id:584) 
          (Token id:Id.Lit_Chars val:'\t\t! grep update file2 &&\n' span_id:585) (Token id:Id.Lit_Chars val:'\t\ttest_must_fail git show-ref --verify refs/git-p4-tmp\n' span_id:586) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:587)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'git p4 file subset branch' span_id:597))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:601) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:602) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:603) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tp4 integrate //depot/branch1/file1 //depot/branch6/file1 &&\n'
            span_id: 604
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tp4 submit -d "Integrate file1 alone from branch1 to branch6"\n'
            span_id: 605
          ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:606)
        )
      }
    )
    (C {(test_expect_failure)} 
      {(SQ (Token id:Id.Lit_Chars val:'git p4 clone file subset branch' span_id:619))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:623) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:624) (Token id:Id.Lit_Chars val:'\ttest_create_repo "$git" &&\n' span_id:625) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:626) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:627) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit config git-p4.branchList branch1:branch2 &&\n'
            span_id: 628
          ) (Token id:Id.Lit_Chars val:'\t\tgit config --add git-p4.branchList branch1:branch3 &&\n' span_id:629) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit config --add git-p4.branchList branch1:branch4 &&\n'
            span_id: 630
          ) (Token id:Id.Lit_Chars val:'\t\tgit config --add git-p4.branchList branch1:branch5 &&\n' span_id:631) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit config --add git-p4.branchList branch1:branch6 &&\n'
            span_id: 632
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit p4 clone --dest=. --detect-branches //depot@all &&\n'
            span_id: 633
          ) (Token id:Id.Lit_Chars val:'\t\tgit log --all --graph --decorate --stat &&\n' span_id:634) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit reset --hard p4/depot/branch1 &&\n'
            span_id: 635
          ) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file1 &&\n' span_id:636) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file2 &&\n' span_id:637) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file3 &&\n' span_id:638) 
          (Token id:Id.Lit_Chars val:'\t\tgrep update file2 &&\n' span_id:639) (Token id:Id.Lit_Chars val:'\t\tgit reset --hard p4/depot/branch2 &&\n' span_id:640) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file1 &&\n' span_id:641) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file2 &&\n' span_id:642) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_missing file3 &&\n' span_id:643) (Token id:Id.Lit_Chars val:'\t\t! grep update file2 &&\n' span_id:644) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit reset --hard p4/depot/branch3 &&\n'
            span_id: 645
          ) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file1 &&\n' span_id:646) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file2 &&\n' span_id:647) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_missing file3 &&\n' span_id:648) 
          (Token id:Id.Lit_Chars val:'\t\tgrep update file2 &&\n' span_id:649) (Token id:Id.Lit_Chars val:'\t\tgit reset --hard p4/depot/branch4 &&\n' span_id:650) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file1 &&\n' span_id:651) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file2 &&\n' span_id:652) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file3 &&\n' span_id:653) (Token id:Id.Lit_Chars val:'\t\t! grep update file2 &&\n' span_id:654) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit reset --hard p4/depot/branch5 &&\n'
            span_id: 655
          ) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file1 &&\n' span_id:656) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file2 &&\n' span_id:657) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file3 &&\n' span_id:658) 
          (Token id:Id.Lit_Chars val:'\t\t! grep update file2 &&\n' span_id:659) (Token id:Id.Lit_Chars val:'\t\tgit reset --hard p4/depot/branch6 &&\n' span_id:660) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file1 &&\n' span_id:661) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_missing file2 &&\n' span_id:662) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_missing file3\n' span_id:663) (Token id:Id.Lit_Chars val:'\t)\n' span_id:664)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'use-client-spec detect-branches setup' span_id:680))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:684) 
          (Token id:Id.Lit_Chars val:'\trm -rf "$cli" &&\n' span_id:685) (Token id:Id.Lit_Chars val:'\tmkdir "$cli" &&\n' span_id:686) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:687) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:688) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tclient_view "//depot/usecs/... //client/..." &&\n'
            span_id: 689
          ) (Token id:Id.Lit_Chars val:'\t\tmkdir b1 &&\n' span_id:690) 
          (Token id:Id.Lit_Chars val:'\t\techo b1/b1-file1 >b1/b1-file1 &&\n' span_id:691) (Token id:Id.Lit_Chars val:'\t\tp4 add b1/b1-file1 &&\n' span_id:692) 
          (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "b1/b1-file1" &&\n' span_id:693) (Token id:Id.Lit_Chars val:'\n' span_id:694) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tp4 integrate //depot/usecs/b1/... //depot/usecs/b2/... &&\n'
            span_id: 695
          ) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "b1 -> b2" &&\n' span_id:696) 
          (Token id:Id.Lit_Chars val:'\t\tp4 branch -i <<-EOF &&\n' span_id:697) (Token id:Id.Lit_Chars val:'\t\tBranch: b2\n' span_id:698) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tView: //depot/usecs/b1/... //depot/usecs/b2/...\n'
            span_id: 699
          ) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:700) (Token id:Id.Lit_Chars val:'\n' span_id:701) 
          (Token id:Id.Lit_Chars val:'\t\techo b2/b2-file2 >b2/b2-file2 &&\n' span_id:702) (Token id:Id.Lit_Chars val:'\t\tp4 add b2/b2-file2 &&\n' span_id:703) 
          (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "b2/b2-file2"\n' span_id:704) (Token id:Id.Lit_Chars val:'\t)\n' span_id:705)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'use-client-spec detect-branches files in top-level'
            span_id: 712
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:716) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:717) (Token id:Id.Lit_Chars val:'\ttest_create_repo "$git" &&\n' span_id:718) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:719) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:720) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit p4 sync --detect-branches --use-client-spec //depot/usecs@all &&\n'
            span_id: 721
          ) (Token id:Id.Lit_Chars val:'\t\tgit checkout -b master p4/usecs/b1 &&\n' span_id:722) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file b1-file1 &&\n' span_id:723) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_missing b2-file2 &&\n' span_id:724) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_missing b1 &&\n' span_id:725) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_missing b2 &&\n' span_id:726) 
          (Token id:Id.Lit_Chars val:'\n' span_id:727) (Token id:Id.Lit_Chars val:'\t\tgit checkout -b b2 p4/usecs/b2 &&\n' span_id:728) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file b1-file1 &&\n' span_id:729) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file b2-file2 &&\n' span_id:730) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_missing b1 &&\n' span_id:731) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_missing b2\n' span_id:732) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:733)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'use-client-spec detect-branches skips branches setup'
            span_id: 740
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:744) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:745) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:746) 
          (Token id:Id.Lit_Chars val:'\n' span_id:747) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tp4 integrate //depot/usecs/b1/... //depot/usecs/b3/... &&\n'
            span_id: 748
          ) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "b1 -> b3" &&\n' span_id:749) 
          (Token id:Id.Lit_Chars val:'\t\tp4 branch -i <<-EOF &&\n' span_id:750) (Token id:Id.Lit_Chars val:'\t\tBranch: b3\n' span_id:751) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tView: //depot/usecs/b1/... //depot/usecs/b3/...\n'
            span_id: 752
          ) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:753) (Token id:Id.Lit_Chars val:'\n' span_id:754) 
          (Token
            id: Id.Lit_Chars
            val: '\t\techo b3/b3-file3_1 >b3/b3-file3_1 &&\n'
            span_id: 755
          ) (Token id:Id.Lit_Chars val:'\t\techo b3/b3-file3_2 >b3/b3-file3_2 &&\n' span_id:756) 
          (Token id:Id.Lit_Chars val:'\t\tp4 add b3/b3-file3_1 &&\n' span_id:757) (Token id:Id.Lit_Chars val:'\t\tp4 add b3/b3-file3_2 &&\n' span_id:758) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tp4 submit -d "b3/b3-file3_1 b3/b3-file3_2"\n'
            span_id: 759
          ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:760)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'use-client-spec detect-branches skips branches' span_id:767))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:771) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/usecs/... //client/..." \\\n'
            span_id: 772
          ) (Token id:Id.Lit_Chars val:'\t\t    "-//depot/usecs/b3/... //client/b3/..." &&\n' span_id:773) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:774) (Token id:Id.Lit_Chars val:'\ttest_create_repo "$git" &&\n' span_id:775) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:776) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:777) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit p4 sync --detect-branches --use-client-spec //depot/usecs@all &&\n'
            span_id: 778
          ) (Token id:Id.Lit_Chars val:'\t\ttest_must_fail git rev-parse refs/remotes/p4/usecs/b3\n' span_id:779) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:780)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'use-client-spec detect-branches skips files in branches'
            span_id: 787
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:791) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/usecs/... //client/..." \\\n'
            span_id: 792
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t    "-//depot/usecs/b3/b3-file3_1 //client/b3/b3-file3_1" &&\n'
            span_id: 793
          ) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:794) 
          (Token id:Id.Lit_Chars val:'\ttest_create_repo "$git" &&\n' span_id:795) (Token id:Id.Lit_Chars val:'\t(\n' span_id:796) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:797) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit p4 sync --detect-branches --use-client-spec //depot/usecs@all &&\n'
            span_id: 798
          ) (Token id:Id.Lit_Chars val:'\t\tgit checkout -b master p4/usecs/b3 &&\n' span_id:799) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file b1-file1 &&\n' span_id:800) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file b3-file3_2 &&\n' span_id:801) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_missing b3-file3_1\n' span_id:802) (Token id:Id.Lit_Chars val:'\t)\n' span_id:803)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'restart p4d' span_id:810))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:814) 
          (Token id:Id.Lit_Chars val:'\tkill_p4d &&\n' span_id:815) (Token id:Id.Lit_Chars val:'\tstart_p4d\n' span_id:816)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'add simple p4 branches with common base folder on each branch'
            span_id: 856
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:860) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:861) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:862) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tclient_view "//depot/branch1/base/... //client/branch1/..." \\\n'
            span_id: 863
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t\t    "//depot/branch1/base/dir/sub_file1 //client/branch1/sub_file1" \\\n'
            span_id: 864
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t\t    "//depot/branch2/base/... //client/branch2/..." \\\n'
            span_id: 865
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t\t    "//depot/branch3/base/... //client/branch3/..." &&\n'
            span_id: 866
          ) (Token id:Id.Lit_Chars val:'\t\tmkdir -p branch1 &&\n' span_id:867) 
          (Token id:Id.Lit_Chars val:'\t\tcd branch1 &&\n' span_id:868) (Token id:Id.Lit_Chars val:'\t\techo file1 >file1 &&\n' span_id:869) 
          (Token id:Id.Lit_Chars val:'\t\techo file2 >file2 &&\n' span_id:870) (Token id:Id.Lit_Chars val:'\t\tmkdir dir &&\n' span_id:871) 
          (Token id:Id.Lit_Chars val:'\t\techo sub_file1 >sub_file1 &&\n' span_id:872) (Token id:Id.Lit_Chars val:'\t\tp4 add file1 file2 sub_file1 &&\n' span_id:873) 
          (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "Create branch1" &&\n' span_id:874) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tp4 integrate //depot/branch1/base/... //depot/branch2/base/... &&\n'
            span_id: 875
          ) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "Integrate branch2 from branch1" &&\n' span_id:876) 
          (Token id:Id.Lit_Chars val:'\t\techo file3 >file3 &&\n' span_id:877) (Token id:Id.Lit_Chars val:'\t\tp4 add file3 &&\n' span_id:878) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tp4 submit -d "add file3 in branch1" &&\n'
            span_id: 879
          ) (Token id:Id.Lit_Chars val:'\t\tp4 open file2 &&\n' span_id:880) 
          (Token id:Id.Lit_Chars val:'\t\techo update >>file2 &&\n' span_id:881) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "update file2 in branch1" &&\n' span_id:882) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tp4 integrate //depot/branch1/base/... //depot/branch3/base/... &&\n'
            span_id: 883
          ) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "Integrate branch3 from branch1"\n' span_id:884) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:885)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'git p4 clone simple branches with base folder on server side'
            span_id: 910
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:914) 
          (Token id:Id.Lit_Chars val:'\ttest_create_repo "$git" &&\n' span_id:915) (Token id:Id.Lit_Chars val:'\t(\n' span_id:916) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:917) (Token id:Id.Lit_Chars val:'\t\tgit config git-p4.branchList branch1:branch2 &&\n' span_id:918) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit config --add git-p4.branchList branch1:branch3 &&\n'
            span_id: 919
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit p4 clone --dest=. --use-client-spec  --detect-branches //depot@all &&\n'
            span_id: 920
          ) (Token id:Id.Lit_Chars val:'\t\tgit log --all --graph --decorate --stat &&\n' span_id:921) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit reset --hard p4/depot/branch1 &&\n'
            span_id: 922
          ) (Token id:Id.Lit_Chars val:'\t\ttest -f file1 &&\n' span_id:923) 
          (Token id:Id.Lit_Chars val:'\t\ttest -f file2 &&\n' span_id:924) (Token id:Id.Lit_Chars val:'\t\ttest -f file3 &&\n' span_id:925) 
          (Token id:Id.Lit_Chars val:'\t\ttest -f sub_file1 &&\n' span_id:926) (Token id:Id.Lit_Chars val:'\t\tgrep update file2 &&\n' span_id:927) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit reset --hard p4/depot/branch2 &&\n'
            span_id: 928
          ) (Token id:Id.Lit_Chars val:'\t\ttest -f file1 &&\n' span_id:929) 
          (Token id:Id.Lit_Chars val:'\t\ttest -f file2 &&\n' span_id:930) (Token id:Id.Lit_Chars val:'\t\ttest ! -f file3 &&\n' span_id:931) 
          (Token id:Id.Lit_Chars val:'\t\ttest -f sub_file1 &&\n' span_id:932) (Token id:Id.Lit_Chars val:'\t\t! grep update file2 &&\n' span_id:933) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit reset --hard p4/depot/branch3 &&\n'
            span_id: 934
          ) (Token id:Id.Lit_Chars val:'\t\ttest -f file1 &&\n' span_id:935) 
          (Token id:Id.Lit_Chars val:'\t\ttest -f file2 &&\n' span_id:936) (Token id:Id.Lit_Chars val:'\t\ttest -f file3 &&\n' span_id:937) 
          (Token id:Id.Lit_Chars val:'\t\ttest -f sub_file1 &&\n' span_id:938) (Token id:Id.Lit_Chars val:'\t\tgrep update file2 &&\n' span_id:939) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:940) (Token id:Id.Lit_Chars val:'\t\tcd branch1 &&\n' span_id:941) 
          (Token id:Id.Lit_Chars val:'\t\tp4 edit file2 &&\n' span_id:942) (Token id:Id.Lit_Chars val:'\t\techo file2_ >>file2 &&\n' span_id:943) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tp4 submit -d "update file2 in branch1" &&\n'
            span_id: 944
          ) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:945) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit reset --hard p4/depot/branch1 &&\n'
            span_id: 946
          ) (Token id:Id.Lit_Chars val:'\t\tgit p4 rebase &&\n' span_id:947) 
          (Token id:Id.Lit_Chars val:'\t\tgrep file2_ file2\n' span_id:948) (Token id:Id.Lit_Chars val:'\t)\n' span_id:949)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'Update a file in git side and submit to P4 using client view'
            span_id: 959
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:963) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:964) (Token id:Id.Lit_Chars val:'\t(\n' span_id:965) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:966) (Token id:Id.Lit_Chars val:'\t\tgit reset --hard p4/depot/branch1 &&\n' span_id:967) 
          (Token id:Id.Lit_Chars val:'\t\techo "client spec" >> file1 &&\n' span_id:968) (Token id:Id.Lit_Chars val:'\t\tgit add -u . &&\n' span_id:969) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit commit -m "update file1 in branch1" &&\n'
            span_id: 970
          ) (Token id:Id.Lit_Chars val:'\t\tgit config git-p4.skipSubmitEdit true &&\n' span_id:971) 
          (Token id:Id.Lit_Chars val:'\t\tgit p4 submit --verbose &&\n' span_id:972) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:973) 
          (Token id:Id.Lit_Chars val:'\t\tp4 sync ... &&\n' span_id:974) (Token id:Id.Lit_Chars val:'\t\tcd branch1 &&\n' span_id:975) 
          (Token id:Id.Lit_Chars val:'\t\tgrep "client spec" file1\n' span_id:976) (Token id:Id.Lit_Chars val:'\t)\n' span_id:977)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'kill p4d' span_id:984))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:988) 
          (Token id:Id.Lit_Chars val:'\tkill_p4d\n' span_id:989)
        )
      }
    )
    (C {(test_done)})
  ]
)