(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 transparency to shell metachars in filenames' 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:'init depot' span_id:30))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:34) (Token id:Id.Lit_Chars val:'\t(\n' span_id:35) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:36) (Token id:Id.Lit_Chars val:'\t\techo file1 >file1 &&\n' span_id:37) (Token id:Id.Lit_Chars val:'\t\tp4 add file1 &&\n' span_id:38) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "file1"\n' span_id:39) (Token id:Id.Lit_Chars val:'\t)\n' span_id:40) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'shell metachars in filenames' span_id:47))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:51) (Token id: Id.Lit_Chars val: '\tgit p4 clone --dest="$git" //depot &&\n' span_id: 52 ) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:53) (Token id:Id.Lit_Chars val:'\t(\n' span_id:54) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:55) (Token id: Id.Lit_Chars val: '\t\tgit config git-p4.skipSubmitEditCheck true &&\n' span_id: 56 ) (Token id:Id.Lit_Chars val:'\t\techo f1 >foo\\$bar &&\n' span_id:57) (Token id:Id.Lit_Chars val:'\t\tgit add foo\\$bar &&\n' span_id:58) (Token id:Id.Lit_Chars val:'\t\techo f2 >"file with spaces" &&\n' span_id:59) (Token id:Id.Lit_Chars val:'\t\tgit add "file with spaces" &&\n' span_id:60) (Token id:Id.Lit_Chars val:'\t\tgit commit -m "add files" &&\n' span_id:61) (Token id: Id.Lit_Chars val: '\t\tP4EDITOR="test-chmtime +5" git p4 submit\n' span_id: 62 ) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:63) (Token id:Id.Lit_Chars val:'\t(\n' span_id:64) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:65) (Token id:Id.Lit_Chars val:'\t\tp4 sync ... &&\n' span_id:66) (Token id:Id.Lit_Chars val:'\t\ttest -e "file with spaces" &&\n' span_id:67) (Token id:Id.Lit_Chars val:'\t\ttest -e "foo\\$bar"\n' span_id:68) (Token id:Id.Lit_Chars val:'\t)\n' span_id:69) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'deleting with shell metachars' span_id:76))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:80) (Token id: Id.Lit_Chars val: '\tgit p4 clone --dest="$git" //depot &&\n' span_id: 81 ) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:82) (Token id:Id.Lit_Chars val:'\t(\n' span_id:83) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:84) (Token id: Id.Lit_Chars val: '\t\tgit config git-p4.skipSubmitEditCheck true &&\n' span_id: 85 ) (Token id:Id.Lit_Chars val:'\t\tgit rm foo\\$bar &&\n' span_id:86) (Token id:Id.Lit_Chars val:'\t\tgit rm file\\ with\\ spaces &&\n' span_id:87) (Token id:Id.Lit_Chars val:'\t\tgit commit -m "remove files" &&\n' span_id:88) (Token id: Id.Lit_Chars val: '\t\tP4EDITOR="test-chmtime +5" git p4 submit\n' span_id: 89 ) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:90) (Token id:Id.Lit_Chars val:'\t(\n' span_id:91) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:92) (Token id:Id.Lit_Chars val:'\t\tp4 sync ... &&\n' span_id:93) (Token id:Id.Lit_Chars val:'\t\ttest ! -e "file with spaces" &&\n' span_id:94) (Token id:Id.Lit_Chars val:'\t\ttest ! -e foo\\$bar\n' span_id:95) (Token id:Id.Lit_Chars val:'\t)\n' span_id:96) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'branch with shell char' span_id:116))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:120) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:121) (Token id:Id.Lit_Chars val:'\ttest_create_repo "$git" &&\n' span_id:122) (Token id:Id.Lit_Chars val:'\t(\n' span_id:123) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:124) (Token id:Id.Lit_Chars val:'\n' span_id:125) (Token id:Id.Lit_Chars val:'\t\tmkdir -p main &&\n' span_id:126) (Token id:Id.Lit_Chars val:'\n' span_id:127) (Token id:Id.Lit_Chars val:'\t\techo f1 >main/f1 &&\n' span_id:128) (Token id:Id.Lit_Chars val:'\t\tp4 add main/f1 &&\n' span_id:129) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "main/f1" &&\n' span_id:130) (Token id:Id.Lit_Chars val:'\n' span_id:131) (Token id: Id.Lit_Chars val: '\t\tp4 integrate //depot/main/... //depot/branch\\$3/... &&\n' span_id: 132 ) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "integrate main to branch\\$3" &&\n' span_id:133) (Token id:Id.Lit_Chars val:'\n' span_id:134) (Token id:Id.Lit_Chars val:'\t\techo f1 >branch\\$3/shell_char_branch_file &&\n' span_id:135) (Token id: Id.Lit_Chars val: '\t\tp4 add branch\\$3/shell_char_branch_file &&\n' span_id: 136 ) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "branch\\$3/shell_char_branch_file" &&\n' span_id:137) (Token id:Id.Lit_Chars val:'\n' span_id:138) (Token id:Id.Lit_Chars val:'\t\tp4 branch -i <<-EOF &&\n' span_id:139) (Token id:Id.Lit_Chars val:'\t\tBranch: branch\\$3\n' span_id:140) (Token id:Id.Lit_Chars val:'\t\tView: //depot/main/... //depot/branch\\$3/...\n' span_id:141) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:142) (Token id:Id.Lit_Chars val:'\n' span_id:143) (Token id:Id.Lit_Chars val:'\t\tp4 edit main/f1 &&\n' span_id:144) (Token id:Id.Lit_Chars val:'\t\techo "a change" >> main/f1 &&\n' span_id:145) (Token id: Id.Lit_Chars val: '\t\tp4 submit -d "a change" main/f1 &&\n' span_id: 146 ) (Token id:Id.Lit_Chars val:'\n' span_id:147) (Token id:Id.Lit_Chars val:'\t\tp4 integrate -b branch\\$3 &&\n' span_id:148) (Token id:Id.Lit_Chars val:'\t\tp4 resolve -am branch\\$3/... &&\n' span_id:149) (Token id: Id.Lit_Chars val: '\t\tp4 submit -d "integrate main to branch\\$3" &&\n' span_id: 150 ) (Token id:Id.Lit_Chars val:'\n' span_id:151) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:152) (Token id:Id.Lit_Chars val:'\n' span_id:153) (Token id: Id.Lit_Chars val: '\t\tgit config git-p4.branchList main:branch\\$3 &&\n' span_id: 154 ) (Token id: Id.Lit_Chars val: '\t\tgit p4 clone --dest=. --detect-branches //depot@all &&\n' span_id: 155 ) (Token id:Id.Lit_Chars val:'\t\tgit log --all --graph --decorate --stat &&\n' span_id:156) (Token id: Id.Lit_Chars val: '\t\tgit reset --hard p4/depot/branch\\$3 &&\n' span_id: 157 ) (Token id:Id.Lit_Chars val:'\t\ttest -f shell_char_branch_file &&\n' span_id:158) (Token id:Id.Lit_Chars val:'\t\ttest -f f1\n' span_id:159) (Token id:Id.Lit_Chars val:'\t)\n' span_id:160) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'kill p4d' span_id:167))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:171) (Token id:Id.Lit_Chars val:'\tkill_p4d\n' span_id:172) ) } ) (C {(test_done)}) ] )