(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 submit failure handling' 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\tp4 client -o | sed "/LineEnd/s/:.*/:unix/" | p4 client -i &&\n' span_id: 37 ) (Token id:Id.Lit_Chars val:'\t\techo line1 >file1 &&\n' span_id:38) (Token id:Id.Lit_Chars val:'\t\tp4 add file1 &&\n' span_id:39) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "line1 in file1"\n' span_id:40) (Token id:Id.Lit_Chars val:'\t)\n' span_id:41) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'conflict on one commit' span_id:48))} { (SQ (Token id:Id.Lit_Chars val:'\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:'\tgit p4 clone --dest="$git" //depot &&\n' span_id:54) (Token id:Id.Lit_Chars val:'\t(\n' span_id:55) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:56) (Token id:Id.Lit_Chars val:'\t\tp4 open file1 &&\n' span_id:57) (Token id:Id.Lit_Chars val:'\t\techo line2 >>file1 &&\n' span_id:58) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "line2 in file1"\n' span_id:59) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:60) (Token id:Id.Lit_Chars val:'\t(\n' span_id:61) (Token id: Id.Lit_Chars val: '\t\t# now this commit should cause a conflict\n' span_id: 62 ) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:63) (Token id: Id.Lit_Chars val: '\t\tgit config git-p4.skipSubmitEdit true &&\n' span_id: 64 ) (Token id:Id.Lit_Chars val:'\t\techo line3 >>file1 &&\n' span_id:65) (Token id:Id.Lit_Chars val:'\t\tgit add file1 &&\n' span_id:66) (Token id:Id.Lit_Chars val:'\t\tgit commit -m "line3 in file1 will conflict" &&\n' span_id:67) (Token id: Id.Lit_Chars val: '\t\ttest_expect_code 1 git p4 submit >out &&\n' span_id: 68 ) (Token id:Id.Lit_Chars val:'\t\ttest_i18ngrep "No commits applied" out\n' span_id:69) (Token id:Id.Lit_Chars val:'\t)\n' span_id:70) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'conflict on second of two commits' span_id:77))} { (SQ (Token id:Id.Lit_Chars val:'\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:'\tgit p4 clone --dest="$git" //depot &&\n' span_id:83) (Token id:Id.Lit_Chars val:'\t(\n' span_id:84) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:85) (Token id:Id.Lit_Chars val:'\t\tp4 open file1 &&\n' span_id:86) (Token id:Id.Lit_Chars val:'\t\techo line3 >>file1 &&\n' span_id:87) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "line3 in file1"\n' span_id:88) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:89) (Token id:Id.Lit_Chars val:'\t(\n' span_id:90) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:91) (Token id:Id.Lit_Chars val:'\t\tgit config git-p4.skipSubmitEdit true &&\n' span_id:92) (Token id:Id.Lit_Chars val:'\t\t# this commit is okay\n' span_id:93) (Token id:Id.Lit_Chars val:'\t\ttest_commit "first_commit_okay" &&\n' span_id:94) (Token id: Id.Lit_Chars val: '\t\t# now this submit should cause a conflict\n' span_id: 95 ) (Token id:Id.Lit_Chars val:'\t\techo line4 >>file1 &&\n' span_id:96) (Token id:Id.Lit_Chars val:'\t\tgit add file1 &&\n' span_id:97) (Token id:Id.Lit_Chars val:'\t\tgit commit -m "line4 in file1 will conflict" &&\n' span_id:98) (Token id: Id.Lit_Chars val: '\t\ttest_expect_code 1 git p4 submit >out &&\n' span_id: 99 ) (Token id:Id.Lit_Chars val:'\t\ttest_i18ngrep "Applied only the commits" out\n' span_id:100) (Token id:Id.Lit_Chars val:'\t)\n' span_id:101) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'conflict on first of two commits, skip' span_id:108))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:112) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:113) (Token id:Id.Lit_Chars val:'\tgit p4 clone --dest="$git" //depot &&\n' span_id:114) (Token id:Id.Lit_Chars val:'\t(\n' span_id:115) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:116) (Token id:Id.Lit_Chars val:'\t\tp4 open file1 &&\n' span_id:117) (Token id:Id.Lit_Chars val:'\t\techo line4 >>file1 &&\n' span_id:118) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "line4 in file1"\n' span_id:119) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:120) (Token id:Id.Lit_Chars val:'\t(\n' span_id:121) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:122) (Token id:Id.Lit_Chars val:'\t\tgit config git-p4.skipSubmitEdit true &&\n' span_id:123) (Token id: Id.Lit_Chars val: '\t\t# this submit should cause a conflict\n' span_id: 124 ) (Token id:Id.Lit_Chars val:'\t\techo line5 >>file1 &&\n' span_id:125) (Token id:Id.Lit_Chars val:'\t\tgit add file1 &&\n' span_id:126) (Token id:Id.Lit_Chars val:'\t\tgit commit -m "line5 in file1 will conflict" &&\n' span_id:127) (Token id:Id.Lit_Chars val:'\t\t# but this commit is okay\n' span_id:128) (Token id:Id.Lit_Chars val:'\t\ttest_commit "okay_commit_after_skip" &&\n' span_id:129) (Token id: Id.Lit_Chars val: '\t\techo s | test_expect_code 1 git p4 submit >out &&\n' span_id: 130 ) (Token id:Id.Lit_Chars val:'\t\ttest_i18ngrep "Applied only the commits" out\n' span_id:131) (Token id:Id.Lit_Chars val:'\t)\n' span_id:132) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'conflict on first of two commits, quit' span_id:139))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:143) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:144) (Token id:Id.Lit_Chars val:'\tgit p4 clone --dest="$git" //depot &&\n' span_id:145) (Token id:Id.Lit_Chars val:'\t(\n' span_id:146) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:147) (Token id:Id.Lit_Chars val:'\t\tp4 open file1 &&\n' span_id:148) (Token id:Id.Lit_Chars val:'\t\techo line7 >>file1 &&\n' span_id:149) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "line7 in file1"\n' span_id:150) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:151) (Token id:Id.Lit_Chars val:'\t(\n' span_id:152) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:153) (Token id:Id.Lit_Chars val:'\t\tgit config git-p4.skipSubmitEdit true &&\n' span_id:154) (Token id: Id.Lit_Chars val: '\t\t# this submit should cause a conflict\n' span_id: 155 ) (Token id:Id.Lit_Chars val:'\t\techo line8 >>file1 &&\n' span_id:156) (Token id:Id.Lit_Chars val:'\t\tgit add file1 &&\n' span_id:157) (Token id:Id.Lit_Chars val:'\t\tgit commit -m "line8 in file1 will conflict" &&\n' span_id:158) (Token id:Id.Lit_Chars val:'\t\t# but this commit is okay\n' span_id:159) (Token id:Id.Lit_Chars val:'\t\ttest_commit "okay_commit_after_quit" &&\n' span_id:160) (Token id: Id.Lit_Chars val: '\t\techo q | test_expect_code 1 git p4 submit >out &&\n' span_id: 161 ) (Token id:Id.Lit_Chars val:'\t\ttest_i18ngrep "No commits applied" out\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:'conflict cli and config options' 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 &&\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 p4 submit --conflict=ask &&\n' span_id:179) (Token id:Id.Lit_Chars val:'\t\tgit p4 submit --conflict=skip &&\n' span_id:180) (Token id:Id.Lit_Chars val:'\t\tgit p4 submit --conflict=quit &&\n' span_id:181) (Token id:Id.Lit_Chars val:'\t\ttest_expect_code 2 git p4 submit --conflict=foo &&\n' span_id:182) (Token id: Id.Lit_Chars val: '\t\ttest_expect_code 2 git p4 submit --conflict &&\n' span_id: 183 ) (Token id:Id.Lit_Chars val:'\t\tgit config git-p4.conflict foo &&\n' span_id:184) (Token id: Id.Lit_Chars val: '\t\ttest_expect_code 1 git p4 submit &&\n' span_id: 185 ) (Token id:Id.Lit_Chars val:'\t\tgit config --unset git-p4.conflict &&\n' span_id:186) (Token id:Id.Lit_Chars val:'\t\tgit p4 submit\n' span_id:187) (Token id:Id.Lit_Chars val:'\t)\n' span_id:188) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'conflict on first of two commits, --conflict=skip' span_id: 195 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:199) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:200) (Token id:Id.Lit_Chars val:'\tgit p4 clone --dest="$git" //depot &&\n' span_id:201) (Token id:Id.Lit_Chars val:'\t(\n' span_id:202) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:203) (Token id:Id.Lit_Chars val:'\t\tp4 open file1 &&\n' span_id:204) (Token id:Id.Lit_Chars val:'\t\techo line9 >>file1 &&\n' span_id:205) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "line9 in file1"\n' span_id:206) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:207) (Token id:Id.Lit_Chars val:'\t(\n' span_id:208) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:209) (Token id:Id.Lit_Chars val:'\t\tgit config git-p4.skipSubmitEdit true &&\n' span_id:210) (Token id: Id.Lit_Chars val: '\t\t# this submit should cause a conflict\n' span_id: 211 ) (Token id:Id.Lit_Chars val:'\t\techo line10 >>file1 &&\n' span_id:212) (Token id:Id.Lit_Chars val:'\t\tgit add file1 &&\n' span_id:213) (Token id:Id.Lit_Chars val:'\t\tgit commit -m "line10 in file1 will conflict" &&\n' span_id:214) (Token id:Id.Lit_Chars val:'\t\t# but this commit is okay\n' span_id:215) (Token id:Id.Lit_Chars val:'\t\ttest_commit "okay_commit_after_auto_skip" &&\n' span_id:216) (Token id: Id.Lit_Chars val: '\t\ttest_expect_code 1 git p4 submit --conflict=skip >out &&\n' span_id: 217 ) (Token id:Id.Lit_Chars val:'\t\ttest_i18ngrep "Applied only the commits" out\n' span_id:218) (Token id:Id.Lit_Chars val:'\t)\n' span_id:219) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'conflict on first of two commits, --conflict=quit' span_id: 226 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:230) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:231) (Token id:Id.Lit_Chars val:'\tgit p4 clone --dest="$git" //depot &&\n' span_id:232) (Token id:Id.Lit_Chars val:'\t(\n' span_id:233) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:234) (Token id:Id.Lit_Chars val:'\t\tp4 open file1 &&\n' span_id:235) (Token id:Id.Lit_Chars val:'\t\techo line11 >>file1 &&\n' span_id:236) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "line11 in file1"\n' span_id:237) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:238) (Token id:Id.Lit_Chars val:'\t(\n' span_id:239) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:240) (Token id:Id.Lit_Chars val:'\t\tgit config git-p4.skipSubmitEdit true &&\n' span_id:241) (Token id: Id.Lit_Chars val: '\t\t# this submit should cause a conflict\n' span_id: 242 ) (Token id:Id.Lit_Chars val:'\t\techo line12 >>file1 &&\n' span_id:243) (Token id:Id.Lit_Chars val:'\t\tgit add file1 &&\n' span_id:244) (Token id:Id.Lit_Chars val:'\t\tgit commit -m "line12 in file1 will conflict" &&\n' span_id:245) (Token id:Id.Lit_Chars val:'\t\t# but this commit is okay\n' span_id:246) (Token id:Id.Lit_Chars val:'\t\ttest_commit "okay_commit_after_auto_quit" &&\n' span_id:247) (Token id: Id.Lit_Chars val: '\t\ttest_expect_code 1 git p4 submit --conflict=quit >out &&\n' span_id: 248 ) (Token id:Id.Lit_Chars val:'\t\ttest_i18ngrep "No commits applied" out\n' span_id:249) (Token id:Id.Lit_Chars val:'\t)\n' span_id:250) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cleanup edit p4 populate' span_id:276))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:280) (Token id:Id.Lit_Chars val:'\t(\n' span_id:281) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:282) (Token id:Id.Lit_Chars val:'\t\techo text file >text &&\n' span_id:283) (Token id:Id.Lit_Chars val:'\t\tp4 add text &&\n' span_id:284) (Token id:Id.Lit_Chars val:'\t\techo text+x file >text+x &&\n' span_id:285) (Token id:Id.Lit_Chars val:'\t\tchmod 755 text+x &&\n' span_id:286) (Token id:Id.Lit_Chars val:'\t\tp4 add text+x &&\n' span_id:287) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "populate p4"\n' span_id:288) (Token id:Id.Lit_Chars val:'\t)\n' span_id:289) ) } ) (command.ShFunction name: setup_conflict body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (C {(test_when_finished)} {(cleanup_git)}) (C {(git)} {(p4)} {(clone)} {(--dest) (Id.Lit_Equals '=') (DQ ($ Id.VSub_DollarName '$git'))} {(//depot)} ) (C {(test_tick)}) (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)} {(open)} {(file1)}) (command.Simple words: [{(echo)} {($ Id.VSub_DollarName '$test_tick')}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:362) fd: -1 arg_word: {(file1)} ) ] ) (C {(p4)} {(submit)} {(-d)} {(DQ ($ Id.VSub_DollarName '$test_tick') (' in file1'))} ) ] ) ] ) ) (C {(test_tick)}) (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 '$git'))}) (C {(git)} {(config)} {(git-p4.skipSubmitEdit)} {(true)}) (command.Simple words: [{(echo)} {($ Id.VSub_DollarName '$test_tick')}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:421) fd: -1 arg_word: {(file1)} ) ] ) (C {(git)} {(add)} {(file1)}) ] ) ] ) ) ] ) ] ) ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cleanup edit after submit fail' span_id:446))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:450) (Token id:Id.Lit_Chars val:'\tsetup_conflict &&\n' span_id:451) (Token id:Id.Lit_Chars val:'\t(\n' span_id:452) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:453) (Token id:Id.Lit_Chars val:'\t\techo another line >>text &&\n' span_id:454) (Token id:Id.Lit_Chars val:'\t\tgit add text &&\n' span_id:455) (Token id:Id.Lit_Chars val:'\t\tgit commit -m "conflict" &&\n' span_id:456) (Token id:Id.Lit_Chars val:'\t\ttest_expect_code 1 git p4 submit\n' span_id:457) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:458) (Token id:Id.Lit_Chars val:'\t(\n' span_id:459) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:460) (Token id:Id.Lit_Chars val:'\t\t# make sure it is not open\n' span_id:461) (Token id:Id.Lit_Chars val:'\t\t! p4 fstat -T action text\n' span_id:462) (Token id:Id.Lit_Chars val:'\t)\n' span_id:463) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cleanup add after submit fail' span_id:470))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:474) (Token id:Id.Lit_Chars val:'\tsetup_conflict &&\n' span_id:475) (Token id:Id.Lit_Chars val:'\t(\n' span_id:476) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:477) (Token id:Id.Lit_Chars val:'\t\techo new file >textnew &&\n' span_id:478) (Token id:Id.Lit_Chars val:'\t\tgit add textnew &&\n' span_id:479) (Token id:Id.Lit_Chars val:'\t\tgit commit -m "conflict" &&\n' span_id:480) (Token id:Id.Lit_Chars val:'\t\ttest_expect_code 1 git p4 submit\n' span_id:481) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:482) (Token id:Id.Lit_Chars val:'\t(\n' span_id:483) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:484) (Token id:Id.Lit_Chars val:'\t\t# make sure it is not there\n' span_id:485) (Token id: Id.Lit_Chars val: '\t\t# and that p4 thinks it is not added\n' span_id: 486 ) (Token id:Id.Lit_Chars val:'\t\t# P4 returns 0 both for "not there but added" and\n' span_id:487) (Token id:Id.Lit_Chars val:'\t\t# "not there", so grep.\n' span_id:488) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_missing textnew &&\n' span_id:489) (Token id: Id.Lit_Chars val: '\t\tp4 fstat -T action textnew 2>&1 | grep "no such file"\n' span_id: 490 ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:491) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cleanup delete after submit fail' span_id:498))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:502) (Token id:Id.Lit_Chars val:'\tsetup_conflict &&\n' span_id:503) (Token id:Id.Lit_Chars val:'\t(\n' span_id:504) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:505) (Token id:Id.Lit_Chars val:'\t\tgit rm text+x &&\n' span_id:506) (Token id:Id.Lit_Chars val:'\t\tgit commit -m "conflict" &&\n' span_id:507) (Token id:Id.Lit_Chars val:'\t\ttest_expect_code 1 git p4 submit\n' span_id:508) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:509) (Token id:Id.Lit_Chars val:'\t(\n' span_id:510) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:511) (Token id:Id.Lit_Chars val:'\t\t# make sure it is there\n' span_id:512) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file text+x &&\n' span_id:513) (Token id:Id.Lit_Chars val:'\t\t! p4 fstat -T action text+x\n' span_id:514) (Token id:Id.Lit_Chars val:'\t)\n' span_id:515) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cleanup copy after submit fail' span_id:522))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:526) (Token id:Id.Lit_Chars val:'\tsetup_conflict &&\n' span_id:527) (Token id:Id.Lit_Chars val:'\t(\n' span_id:528) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:529) (Token id:Id.Lit_Chars val:'\t\tcp text text2 &&\n' span_id:530) (Token id:Id.Lit_Chars val:'\t\tgit add text2 &&\n' span_id:531) (Token id:Id.Lit_Chars val:'\t\tgit commit -m "conflict" &&\n' span_id:532) (Token id: Id.Lit_Chars val: '\t\tgit config git-p4.detectCopies true &&\n' span_id: 533 ) (Token id:Id.Lit_Chars val:'\t\tgit config git-p4.detectCopiesHarder true &&\n' span_id:534) (Token id:Id.Lit_Chars val:'\t\t# make sure setup is okay\n' span_id:535) (Token id: Id.Lit_Chars val: '\t\tgit diff-tree -r -C --find-copies-harder HEAD | grep text2 | grep C100 &&\n' span_id: 536 ) (Token id:Id.Lit_Chars val:'\t\ttest_expect_code 1 git p4 submit\n' span_id:537) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:538) (Token id:Id.Lit_Chars val:'\t(\n' span_id:539) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:540) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_missing text2 &&\n' span_id:541) (Token id: Id.Lit_Chars val: '\t\tp4 fstat -T action text2 2>&1 | grep "no such file"\n' span_id: 542 ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:543) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cleanup rename after submit fail' span_id:550))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:554) (Token id:Id.Lit_Chars val:'\tsetup_conflict &&\n' span_id:555) (Token id:Id.Lit_Chars val:'\t(\n' span_id:556) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:557) (Token id:Id.Lit_Chars val:'\t\tgit mv text text2 &&\n' span_id:558) (Token id:Id.Lit_Chars val:'\t\tgit commit -m "conflict" &&\n' span_id:559) (Token id:Id.Lit_Chars val:'\t\tgit config git-p4.detectRenames true &&\n' span_id:560) (Token id:Id.Lit_Chars val:'\t\t# make sure setup is okay\n' span_id:561) (Token id:Id.Lit_Chars val:'\t\tgit diff-tree -r -M HEAD | grep text2 | grep R100 &&\n' span_id:562) (Token id:Id.Lit_Chars val:'\t\ttest_expect_code 1 git p4 submit\n' span_id:563) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:564) (Token id:Id.Lit_Chars val:'\t(\n' span_id:565) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:566) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_missing text2 &&\n' span_id:567) (Token id: Id.Lit_Chars val: '\t\tp4 fstat -T action text2 2>&1 | grep "no such file"\n' span_id: 568 ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:569) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cleanup edit after submit cancel' span_id:592))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:596) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:597) (Token id:Id.Lit_Chars val:'\tgit p4 clone --dest="$git" //depot &&\n' span_id:598) (Token id:Id.Lit_Chars val:'\t(\n' span_id:599) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:600) (Token id:Id.Lit_Chars val:'\t\techo line >>text &&\n' span_id:601) (Token id:Id.Lit_Chars val:'\t\tgit add text &&\n' span_id:602) (Token id:Id.Lit_Chars val:'\t\tgit commit -m text &&\n' span_id:603) (Token id:Id.Lit_Chars val:'\t\techo n | test_expect_code 1 git p4 submit &&\n' span_id:604) (Token id:Id.Lit_Chars val:'\t\tgit reset --hard HEAD^\n' span_id:605) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:606) (Token id:Id.Lit_Chars val:'\t(\n' span_id:607) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:608) (Token id:Id.Lit_Chars val:'\t\t! p4 fstat -T action text &&\n' span_id:609) (Token id:Id.Lit_Chars val:'\t\ttest_cmp "$git"/text text\n' span_id:610) (Token id:Id.Lit_Chars val:'\t)\n' span_id:611) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cleanup add after submit cancel' span_id:618))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:622) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:623) (Token id:Id.Lit_Chars val:'\tgit p4 clone --dest="$git" //depot &&\n' span_id:624) (Token id:Id.Lit_Chars val:'\t(\n' span_id:625) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:626) (Token id:Id.Lit_Chars val:'\t\techo line >textnew &&\n' span_id:627) (Token id:Id.Lit_Chars val:'\t\tgit add textnew &&\n' span_id:628) (Token id:Id.Lit_Chars val:'\t\tgit commit -m textnew &&\n' span_id:629) (Token id:Id.Lit_Chars val:'\t\techo n | test_expect_code 1 git p4 submit\n' span_id:630) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:631) (Token id:Id.Lit_Chars val:'\t(\n' span_id:632) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:633) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_missing textnew &&\n' span_id:634) (Token id: Id.Lit_Chars val: '\t\tp4 fstat -T action textnew 2>&1 | grep "no such file"\n' span_id: 635 ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:636) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cleanup delete after submit cancel' span_id:643))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:647) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:648) (Token id:Id.Lit_Chars val:'\tgit p4 clone --dest="$git" //depot &&\n' span_id:649) (Token id:Id.Lit_Chars val:'\t(\n' span_id:650) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:651) (Token id:Id.Lit_Chars val:'\t\tgit rm text &&\n' span_id:652) (Token id:Id.Lit_Chars val:'\t\tgit commit -m "rm text" &&\n' span_id:653) (Token id: Id.Lit_Chars val: '\t\techo n | test_expect_code 1 git p4 submit\n' span_id: 654 ) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:655) (Token id:Id.Lit_Chars val:'\t(\n' span_id:656) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:657) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file text &&\n' span_id:658) (Token id:Id.Lit_Chars val:'\t\t! p4 fstat -T action text\n' span_id:659) (Token id:Id.Lit_Chars val:'\t)\n' span_id:660) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cleanup copy after submit cancel' span_id:667))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:671) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:672) (Token id:Id.Lit_Chars val:'\tgit p4 clone --dest="$git" //depot &&\n' span_id:673) (Token id:Id.Lit_Chars val:'\t(\n' span_id:674) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:675) (Token id:Id.Lit_Chars val:'\t\tcp text text2 &&\n' span_id:676) (Token id:Id.Lit_Chars val:'\t\tgit add text2 &&\n' span_id:677) (Token id:Id.Lit_Chars val:'\t\tgit commit -m text2 &&\n' span_id:678) (Token id:Id.Lit_Chars val:'\t\tgit config git-p4.detectCopies true &&\n' span_id:679) (Token id: Id.Lit_Chars val: '\t\tgit config git-p4.detectCopiesHarder true &&\n' span_id: 680 ) (Token id: Id.Lit_Chars val: '\t\tgit diff-tree -r -C --find-copies-harder HEAD | grep text2 | grep C100 &&\n' span_id: 681 ) (Token id:Id.Lit_Chars val:'\t\techo n | test_expect_code 1 git p4 submit\n' span_id:682) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:683) (Token id:Id.Lit_Chars val:'\t(\n' span_id:684) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:685) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_missing text2 &&\n' span_id:686) (Token id: Id.Lit_Chars val: '\t\tp4 fstat -T action text2 2>&1 | grep "no such file"\n' span_id: 687 ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:688) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cleanup rename after submit cancel' span_id:695))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:699) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:700) (Token id:Id.Lit_Chars val:'\tgit p4 clone --dest="$git" //depot &&\n' span_id:701) (Token id:Id.Lit_Chars val:'\t(\n' span_id:702) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:703) (Token id:Id.Lit_Chars val:'\t\tgit mv text text2 &&\n' span_id:704) (Token id:Id.Lit_Chars val:'\t\tgit commit -m text2 &&\n' span_id:705) (Token id: Id.Lit_Chars val: '\t\tgit config git-p4.detectRenames true &&\n' span_id: 706 ) (Token id:Id.Lit_Chars val:'\t\tgit diff-tree -r -M HEAD | grep text2 | grep R100 &&\n' span_id:707) (Token id: Id.Lit_Chars val: '\t\techo n | test_expect_code 1 git p4 submit\n' span_id: 708 ) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:709) (Token id:Id.Lit_Chars val:'\t(\n' span_id:710) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:711) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_missing text2 &&\n' span_id:712) (Token id: Id.Lit_Chars val: '\t\tp4 fstat -T action text2 2>&1 | grep "no such file"\n' span_id: 713 ) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file text &&\n' span_id:714) (Token id:Id.Lit_Chars val:'\t\t! p4 fstat -T action text\n' span_id:715) (Token id:Id.Lit_Chars val:'\t)\n' span_id:716) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cleanup chmod after submit cancel' span_id:723))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:727) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:728) (Token id:Id.Lit_Chars val:'\tgit p4 clone --dest="$git" //depot &&\n' span_id:729) (Token id:Id.Lit_Chars val:'\t(\n' span_id:730) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:731) (Token id:Id.Lit_Chars val:'\t\ttest_chmod +x text &&\n' span_id:732) (Token id:Id.Lit_Chars val:'\t\ttest_chmod -x text+x &&\n' span_id:733) (Token id:Id.Lit_Chars val:'\t\tgit add text text+x &&\n' span_id:734) (Token id:Id.Lit_Chars val:'\t\tgit commit -m "chmod texts" &&\n' span_id:735) (Token id: Id.Lit_Chars val: '\t\techo n | test_expect_code 1 git p4 submit\n' span_id: 736 ) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:737) (Token id:Id.Lit_Chars val:'\t(\n' span_id:738) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:739) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file text &&\n' span_id:740) (Token id:Id.Lit_Chars val:'\t\t! p4 fstat -T action text &&\n' span_id:741) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file text+x &&\n' span_id:742) (Token id:Id.Lit_Chars val:'\t\t! p4 fstat -T action text+x &&\n' span_id:743) (Token id:Id.Lit_Chars val:'\t\tls -l text | egrep ^-r-- &&\n' span_id:744) (Token id:Id.Lit_Chars val:'\t\tls -l text+x | egrep ^-r-x\n' span_id:745) (Token id:Id.Lit_Chars val:'\t)\n' span_id:746) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'kill p4d' span_id:753))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:757) (Token id:Id.Lit_Chars val:'\tkill_p4d\n' span_id:758) ) } ) (C {(test_done)}) ] )