(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 rcs keywords' 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:45))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:49) (Token id:Id.Lit_Chars val:'\t(\n' span_id:50) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:51) (Token id:Id.Lit_Chars val:'\t\tcat <<-\\EOF >filek &&\n' span_id:52) (Token id:Id.Lit_Chars val:'\t\t$Id$\n' span_id:53) (Token id:Id.Lit_Chars val:'\t\t/* $Revision$ */\n' span_id:54) (Token id:Id.Lit_Chars val:'\t\t# $Change$\n' span_id:55) (Token id:Id.Lit_Chars val:'\t\tline4\n' span_id:56) (Token id:Id.Lit_Chars val:'\t\tline5\n' span_id:57) (Token id:Id.Lit_Chars val:'\t\tline6\n' span_id:58) (Token id:Id.Lit_Chars val:'\t\tline7\n' span_id:59) (Token id:Id.Lit_Chars val:'\t\tline8\n' span_id:60) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:61) (Token id: Id.Lit_Chars val: '\t\tsed "s/Revision/Revision: do not scrub me/" <filek >fileko &&\n' span_id: 62 ) (Token id:Id.Lit_Chars val:'\t\tsed "s/Id/Id: do not scrub me/" <fileko >file_text &&\n' span_id:63) (Token id:Id.Lit_Chars val:'\t\tp4 add -t text+k filek &&\n' span_id:64) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "filek" &&\n' span_id:65) (Token id:Id.Lit_Chars val:'\t\tp4 add -t text+ko fileko &&\n' span_id:66) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "fileko" &&\n' span_id:67) (Token id:Id.Lit_Chars val:'\t\tp4 add -t text file_text &&\n' span_id:68) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "file_text"\n' span_id:69) (Token id:Id.Lit_Chars val:'\t)\n' span_id:70) ) } ) (command.ShFunction name: write_scrub_scripts body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:93) fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$TRASH_DIRECTORY') (/scrub_k.py))} ) (redir.HereDoc op: (Token id:Id.Redir_DLessDash val:'<<-' span_id:99) fd: -1 here_begin: { (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\E' span_id:100) ) (OF) } here_end_span_id: 107 stdin_parts: [ ('import re, sys\n') ( "sys.stdout.write(re.sub(r'(?i)\\$(Id|Header|Author|Date|DateTime|Change|File|Revision):[^$]*\\$', r'$\\1$', sys.stdin.read()))\n" ) ] ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:111) fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$TRASH_DIRECTORY') (/scrub_ko.py))} ) (redir.HereDoc op: (Token id:Id.Redir_DLessDash val:'<<-' span_id:117) fd: -1 here_begin: { (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\E' span_id:118) ) (OF) } here_end_span_id: 123 stdin_parts: [ ('import re, sys\n') ( "sys.stdout.write(re.sub(r'(?i)\\$(Id|Header):[^$]*\\$', r'$\\1$', sys.stdin.read()))\n" ) ] ) ] ) ] ) ] ) ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'scrub scripts' span_id:130))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:134) (Token id:Id.Lit_Chars val:'\twrite_scrub_scripts\n' span_id:135) ) } ) (command.ShFunction name: scrub_k_check body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:file) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [159] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:scrub) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$TRASH_DIRECTORY') (/) ($ Id.VSub_DollarName '$file') ) } spids: [167] ) ] ) (command.Simple words: [ {(DQ ($ Id.VSub_DollarName '$PYTHON_PATH'))} {(DQ ($ Id.VSub_DollarName '$TRASH_DIRECTORY') (/scrub_k.py))} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:186) fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$git') (/) ($ Id.VSub_DollarName '$file'))} ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:193) fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$scrub'))} ) ] ) (command.Pipeline children: [ (C {(test_cmp)} {(DQ ($ Id.VSub_DollarName '$cli') (/) ($ Id.VSub_DollarName '$file'))} {(DQ ($ Id.VSub_DollarName '$scrub'))} ) ] negated: T ) (C {(test_cmp)} {(DQ ($ Id.VSub_DollarName '$git') (/) ($ Id.VSub_DollarName '$file'))} {(DQ ($ Id.VSub_DollarName '$scrub'))} ) (C {(rm)} {(DQ ($ Id.VSub_DollarName '$scrub'))}) ] ) ] ) ) (command.ShFunction name: scrub_ko_check body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:file) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [249] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:scrub) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$TRASH_DIRECTORY') (/) ($ Id.VSub_DollarName '$file') ) } spids: [257] ) ] ) (command.Simple words: [ {(DQ ($ Id.VSub_DollarName '$PYTHON_PATH'))} {(DQ ($ Id.VSub_DollarName '$TRASH_DIRECTORY') (/scrub_ko.py))} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:276) fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$git') (/) ($ Id.VSub_DollarName '$file'))} ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:283) fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$scrub'))} ) ] ) (command.Pipeline children: [ (C {(test_cmp)} {(DQ ($ Id.VSub_DollarName '$cli') (/) ($ Id.VSub_DollarName '$file'))} {(DQ ($ Id.VSub_DollarName '$scrub'))} ) ] negated: T ) (C {(test_cmp)} {(DQ ($ Id.VSub_DollarName '$git') (/) ($ Id.VSub_DollarName '$file'))} {(DQ ($ Id.VSub_DollarName '$scrub'))} ) (C {(rm)} {(DQ ($ Id.VSub_DollarName '$scrub'))}) ] ) ] ) ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'edit far away from RCS lines' span_id:347))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:351) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:352) (Token id:Id.Lit_Chars val:'\tgit p4 clone --dest="$git" //depot &&\n' span_id:353) (Token id:Id.Lit_Chars val:'\t(\n' span_id:354) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:355) (Token id: Id.Lit_Chars val: '\t\tgit config git-p4.skipSubmitEdit true &&\n' span_id: 356 ) (Token id:Id.Lit_Chars val:'\t\tsed "s/^line7/line7 edit/" <filek >filek.tmp &&\n' span_id:357) (Token id:Id.Lit_Chars val:'\t\tmv -f filek.tmp filek &&\n' span_id:358) (Token id:Id.Lit_Chars val:'\t\tgit commit -m "filek line7 edit" filek &&\n' span_id:359) (Token id:Id.Lit_Chars val:'\t\tgit p4 submit &&\n' span_id:360) (Token id:Id.Lit_Chars val:'\t\tscrub_k_check filek\n' span_id:361) (Token id:Id.Lit_Chars val:'\t)\n' span_id:362) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'edit near RCS lines' span_id:378))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:382) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:383) (Token id:Id.Lit_Chars val:'\tgit p4 clone --dest="$git" //depot &&\n' span_id:384) (Token id:Id.Lit_Chars val:'\t(\n' span_id:385) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:386) (Token id: Id.Lit_Chars val: '\t\tgit config git-p4.skipSubmitEdit true &&\n' span_id: 387 ) (Token id:Id.Lit_Chars val:'\t\tgit config git-p4.attemptRCSCleanup true &&\n' span_id:388) (Token id: Id.Lit_Chars val: '\t\tsed "s/^line4/line4 edit/" <filek >filek.tmp &&\n' span_id: 389 ) (Token id:Id.Lit_Chars val:'\t\tmv -f filek.tmp filek &&\n' span_id:390) (Token id: Id.Lit_Chars val: '\t\tgit commit -m "filek line4 edit" filek &&\n' span_id: 391 ) (Token id:Id.Lit_Chars val:'\t\tgit p4 submit &&\n' span_id:392) (Token id:Id.Lit_Chars val:'\t\tscrub_k_check filek\n' span_id:393) (Token id:Id.Lit_Chars val:'\t)\n' span_id:394) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'edit keyword lines' span_id:410))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:414) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:415) (Token id:Id.Lit_Chars val:'\tgit p4 clone --dest="$git" //depot &&\n' span_id:416) (Token id:Id.Lit_Chars val:'\t(\n' span_id:417) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:418) (Token id: Id.Lit_Chars val: '\t\tgit config git-p4.skipSubmitEdit true &&\n' span_id: 419 ) (Token id:Id.Lit_Chars val:'\t\tgit config git-p4.attemptRCSCleanup true &&\n' span_id:420) (Token id: Id.Lit_Chars val: '\t\tsed "/Revision/d" <filek >filek.tmp &&\n' span_id: 421 ) (Token id:Id.Lit_Chars val:'\t\tmv -f filek.tmp filek &&\n' span_id:422) (Token id: Id.Lit_Chars val: '\t\tgit commit -m "filek remove Revision line" filek &&\n' span_id: 423 ) (Token id:Id.Lit_Chars val:'\t\tgit p4 submit &&\n' span_id:424) (Token id:Id.Lit_Chars val:'\t\tscrub_k_check filek\n' span_id:425) (Token id:Id.Lit_Chars val:'\t)\n' span_id:426) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'scrub ko files differently' span_id:442))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:446) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:447) (Token id:Id.Lit_Chars val:'\tgit p4 clone --dest="$git" //depot &&\n' span_id:448) (Token id:Id.Lit_Chars val:'\t(\n' span_id:449) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:450) (Token id: Id.Lit_Chars val: '\t\tgit config git-p4.skipSubmitEdit true &&\n' span_id: 451 ) (Token id:Id.Lit_Chars val:'\t\tgit config git-p4.attemptRCSCleanup true &&\n' span_id:452) (Token id: Id.Lit_Chars val: '\t\tsed "s/^line4/line4 edit/" <fileko >fileko.tmp &&\n' span_id: 453 ) (Token id:Id.Lit_Chars val:'\t\tmv -f fileko.tmp fileko &&\n' span_id:454) (Token id: Id.Lit_Chars val: '\t\tgit commit -m "fileko line4 edit" fileko &&\n' span_id: 455 ) (Token id:Id.Lit_Chars val:'\t\tgit p4 submit &&\n' span_id:456) (Token id:Id.Lit_Chars val:'\t\tscrub_ko_check fileko &&\n' span_id:457) (Token id:Id.Lit_Chars val:'\t\t! scrub_k_check fileko\n' span_id:458) (Token id:Id.Lit_Chars val:'\t)\n' span_id:459) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cleanup after failure' span_id:469))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:473) (Token id:Id.Lit_Chars val:'\t(\n' span_id:474) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:475) (Token id:Id.Lit_Chars val:'\t\tp4 revert ...\n' span_id:476) (Token id:Id.Lit_Chars val:'\t)\n' span_id:477) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'ktext expansion should not expand multi-line $File::' span_id: 487 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:491) (Token id:Id.Lit_Chars val:'\t(\n' span_id:492) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:493) (Token id:Id.Lit_Chars val:'\t\tcat >lv.pm <<-\\EOF\n' span_id:494) (Token id:Id.Lit_Chars val:'\t\tmy $wanted = sub { my $f = $File::Find::name;\n' span_id:495) (Token id: Id.Lit_Chars val: '\t\t\t\t if ( -f && $f =~ /foo/ ) {\n' span_id: 496 ) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:497) (Token id:Id.Lit_Chars val:'\t\tp4 add -t ktext lv.pm &&\n' span_id:498) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "lv.pm"\n' span_id:499) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:500) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:501) (Token id: Id.Lit_Chars val: '\tgit p4 clone --dest="$git" //depot &&\n' span_id: 502 ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:503) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:504) (Token id:Id.Lit_Chars val:'\t\ttest_cmp "$cli/lv.pm" lv.pm\n' span_id:505) (Token id:Id.Lit_Chars val:'\t)\n' span_id:506) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'do not scrub plain text' span_id:537))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:541) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:542) (Token id:Id.Lit_Chars val:'\tgit p4 clone --dest="$git" //depot &&\n' span_id:543) (Token id:Id.Lit_Chars val:'\t(\n' span_id:544) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:545) (Token id: Id.Lit_Chars val: '\t\tgit config git-p4.skipSubmitEdit true &&\n' span_id: 546 ) (Token id:Id.Lit_Chars val:'\t\tgit config git-p4.attemptRCSCleanup true &&\n' span_id:547) (Token id: Id.Lit_Chars val: '\t\tsed "s/^line4/line4 edit/" <file_text >file_text.tmp &&\n' span_id: 548 ) (Token id:Id.Lit_Chars val:'\t\tmv -f file_text.tmp file_text &&\n' span_id:549) (Token id: Id.Lit_Chars val: '\t\tgit commit -m "file_text line4 edit" file_text &&\n' span_id: 550 ) (Token id:Id.Lit_Chars val:'\t\t(\n' span_id:551) (Token id:Id.Lit_Chars val:'\t\t\tcd "$cli" &&\n' span_id:552) (Token id:Id.Lit_Chars val:'\t\t\tp4 open file_text &&\n' span_id:553) (Token id: Id.Lit_Chars val: '\t\t\tsed "s/^line5/line5 p4 edit/" <file_text >file_text.tmp &&\n' span_id: 554 ) (Token id:Id.Lit_Chars val:'\t\t\tmv -f file_text.tmp file_text &&\n' span_id:555) (Token id:Id.Lit_Chars val:'\t\t\tp4 submit -d "file5 p4 edit"\n' span_id:556) (Token id:Id.Lit_Chars val:'\t\t) &&\n' span_id:557) (Token id: Id.Lit_Chars val: '\t\techo s | test_expect_code 1 git p4 submit &&\n' span_id: 558 ) (Token id:Id.Lit_Chars val:'\t\t(\n' span_id:559) (Token id: Id.Lit_Chars val: '\t\t\t# make sure the file is not left open\n' span_id: 560 ) (Token id:Id.Lit_Chars val:'\t\t\tcd "$cli" &&\n' span_id:561) (Token id:Id.Lit_Chars val:'\t\t\t! p4 fstat -T action file_text\n' span_id:562) (Token id:Id.Lit_Chars val:'\t\t)\n' span_id:563) (Token id:Id.Lit_Chars val:'\t)\n' span_id:564) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cleanup after failure 2' span_id:574))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:578) (Token id:Id.Lit_Chars val:'\t(\n' span_id:579) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:580) (Token id:Id.Lit_Chars val:'\t\tp4 revert ...\n' span_id:581) (Token id:Id.Lit_Chars val:'\t)\n' span_id:582) ) } ) (command.ShFunction name: create_kw_file body: (command.BraceGroup children: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:596) fd: -1 here_begin: { (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\E' span_id:597) ) (OF) } here_end_span_id: 613 stdin_parts: [ ('/* A file\n') ('\tId: $Id$\n') ('\tRevision: $Revision$\n') ('\tFile: $File$\n') (' */\n') ('int main(int argc, const char **argv) {\n') ('\treturn 0;\n') ('}\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:600) fd: -1 arg_word: {(DQ ($ Id.VSub_Number '$1'))} ) ] ) ] ) ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'add kwfile' span_id:620))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:624) (Token id:Id.Lit_Chars val:'\t(\n' span_id:625) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:626) (Token id:Id.Lit_Chars val:'\t\techo file1 >file1 &&\n' span_id:627) (Token id:Id.Lit_Chars val:'\t\tp4 add file1 &&\n' span_id:628) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "file 1" &&\n' span_id:629) (Token id:Id.Lit_Chars val:'\t\tcreate_kw_file kwfile1.c &&\n' span_id:630) (Token id:Id.Lit_Chars val:'\t\tp4 add kwfile1.c &&\n' span_id:631) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "Add rcw kw file" kwfile1.c\n' span_id:632) (Token id:Id.Lit_Chars val:'\t)\n' span_id:633) ) } ) (command.ShFunction name: p4_append_to_file body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:f) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [645] ) ] ) (C {(p4)} {(edit)} {(-t)} {(ktext)} {(DQ ($ Id.VSub_DollarName '$f'))}) (command.Simple words: [ {(echo)} { (DQ ('/* ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:672) command_list: (command.CommandList children:[(C {(date)})]) ) (' */') ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:678) fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$f'))} ) ] ) (C {(p4)} {(submit)} {(-d)} {(DQ ('appending a line in p4'))}) ] ) ] ) ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cope with rcs keyword expansion damage' span_id:714))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:718) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:719) (Token id:Id.Lit_Chars val:'\tgit p4 clone --dest="$git" //depot &&\n' span_id:720) (Token id:Id.Lit_Chars val:'\t(\n' span_id:721) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:722) (Token id: Id.Lit_Chars val: '\t\tgit config git-p4.skipSubmitEdit true &&\n' span_id: 723 ) (Token id:Id.Lit_Chars val:'\t\tgit config git-p4.attemptRCSCleanup true &&\n' span_id:724) (Token id: Id.Lit_Chars val: '\t\t(cd "$cli" && p4_append_to_file kwfile1.c) &&\n' span_id: 725 ) (Token id:Id.Lit_Chars val:'\t\told_lines=$(wc -l <kwfile1.c) &&\n' span_id:726) (Token id: Id.Lit_Chars val: '\t\tperl -n -i -e "print unless m/Revision:/" kwfile1.c &&\n' span_id: 727 ) (Token id:Id.Lit_Chars val:'\t\tnew_lines=$(wc -l <kwfile1.c) &&\n' span_id:728) (Token id: Id.Lit_Chars val: '\t\ttest $new_lines = $(($old_lines - 1)) &&\n' span_id: 729 ) (Token id:Id.Lit_Chars val:'\n' span_id:730) (Token id:Id.Lit_Chars val:'\t\tgit add kwfile1.c &&\n' span_id:731) (Token id:Id.Lit_Chars val:'\t\tgit commit -m "Zap an RCS kw line" &&\n' span_id:732) (Token id:Id.Lit_Chars val:'\t\tgit p4 submit &&\n' span_id:733) (Token id:Id.Lit_Chars val:'\t\tgit p4 rebase &&\n' span_id:734) (Token id:Id.Lit_Chars val:'\t\tgit diff p4/master &&\n' span_id:735) (Token id:Id.Lit_Chars val:'\t\tgit p4 commit &&\n' span_id:736) (Token id:Id.Lit_Chars val:'\t\techo "try modifying in both" &&\n' span_id:737) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:738) (Token id:Id.Lit_Chars val:'\t\tp4 edit kwfile1.c &&\n' span_id:739) (Token id:Id.Lit_Chars val:'\t\techo "line from p4" >>kwfile1.c &&\n' span_id:740) (Token id: Id.Lit_Chars val: '\t\tp4 submit -d "add a line in p4" kwfile1.c &&\n' span_id: 741 ) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:742) (Token id: Id.Lit_Chars val: '\t\techo "line from git at the top" | cat - kwfile1.c >kwfile1.c.new &&\n' span_id: 743 ) (Token id:Id.Lit_Chars val:'\t\tmv kwfile1.c.new kwfile1.c &&\n' span_id:744) (Token id: Id.Lit_Chars val: '\t\tgit commit -m "Add line in git at the top" kwfile1.c &&\n' span_id: 745 ) (Token id:Id.Lit_Chars val:'\t\tgit p4 rebase &&\n' span_id:746) (Token id:Id.Lit_Chars val:'\t\tgit p4 submit\n' span_id:747) (Token id:Id.Lit_Chars val:'\t)\n' span_id:748) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cope with rcs keyword file deletion' span_id:755))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:759) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:760) (Token id:Id.Lit_Chars val:'\t(\n' span_id:761) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:762) (Token id:Id.Lit_Chars val:'\t\techo "\\$Revision\\$" >kwdelfile.c &&\n' span_id:763) (Token id:Id.Lit_Chars val:'\t\tp4 add -t ktext kwdelfile.c &&\n' span_id:764) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "Add file to be deleted" &&\n' span_id:765) (Token id:Id.Lit_Chars val:'\t\tcat kwdelfile.c &&\n' span_id:766) (Token id:Id.Lit_Chars val:'\t\tgrep 1 kwdelfile.c\n' span_id:767) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:768) (Token id:Id.Lit_Chars val:'\tgit p4 clone --dest="$git" //depot &&\n' span_id:769) (Token id:Id.Lit_Chars val:'\t(\n' span_id:770) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:771) (Token id:Id.Lit_Chars val:'\t\tgrep Revision kwdelfile.c &&\n' span_id:772) (Token id:Id.Lit_Chars val:'\t\tgit rm -f kwdelfile.c &&\n' span_id:773) (Token id: Id.Lit_Chars val: '\t\tgit commit -m "Delete a file containing RCS keywords" &&\n' span_id: 774 ) (Token id:Id.Lit_Chars val:'\t\tgit config git-p4.skipSubmitEdit true &&\n' span_id:775) (Token id: Id.Lit_Chars val: '\t\tgit config git-p4.attemptRCSCleanup true &&\n' span_id: 776 ) (Token id:Id.Lit_Chars val:'\t\tgit p4 submit\n' span_id:777) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:778) (Token id:Id.Lit_Chars val:'\t(\n' span_id:779) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:780) (Token id:Id.Lit_Chars val:'\t\tp4 sync &&\n' span_id:781) (Token id:Id.Lit_Chars val:'\t\t! test -f kwdelfile.c\n' span_id:782) (Token id:Id.Lit_Chars val:'\t)\n' span_id:783) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'Add keywords in git which match the default p4 values' span_id: 796 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:800) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:801) (Token id:Id.Lit_Chars val:'\tgit p4 clone --dest="$git" //depot &&\n' span_id:802) (Token id:Id.Lit_Chars val:'\t(\n' span_id:803) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:804) (Token id: Id.Lit_Chars val: '\t\techo "NewKW: \\$Revision\\$" >>kwfile1.c &&\n' span_id: 805 ) (Token id:Id.Lit_Chars val:'\t\tgit add kwfile1.c &&\n' span_id:806) (Token id: Id.Lit_Chars val: '\t\tgit commit -m "Adding RCS keywords in git" &&\n' span_id: 807 ) (Token id:Id.Lit_Chars val:'\t\tgit config git-p4.skipSubmitEdit true &&\n' span_id:808) (Token id: Id.Lit_Chars val: '\t\tgit config git-p4.attemptRCSCleanup true &&\n' span_id: 809 ) (Token id:Id.Lit_Chars val:'\t\tgit p4 submit\n' span_id:810) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:811) (Token id:Id.Lit_Chars val:'\t(\n' span_id:812) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:813) (Token id:Id.Lit_Chars val:'\t\tp4 sync &&\n' span_id:814) (Token id:Id.Lit_Chars val:'\t\ttest -f kwfile1.c &&\n' span_id:815) (Token id:Id.Lit_Chars val:'\t\tgrep "NewKW.*Revision.*[0-9]" kwfile1.c\n' span_id:816) (Token id:Id.Lit_Chars val:'\n' span_id:817) (Token id:Id.Lit_Chars val:'\t)\n' span_id:818) ) } ) (C {(test_expect_failure)} { (SQ (Token id: Id.Lit_Chars val: 'Add keywords in git which do not match the default p4 values' span_id: 834 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:838) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:839) (Token id:Id.Lit_Chars val:'\tgit p4 clone --dest="$git" //depot &&\n' span_id:840) (Token id:Id.Lit_Chars val:'\t(\n' span_id:841) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:842) (Token id: Id.Lit_Chars val: '\t\techo "NewKW2: \\$Revision:1\\$" >>kwfile1.c &&\n' span_id: 843 ) (Token id:Id.Lit_Chars val:'\t\tgit add kwfile1.c &&\n' span_id:844) (Token id: Id.Lit_Chars val: '\t\tgit commit -m "Adding RCS keywords in git" &&\n' span_id: 845 ) (Token id:Id.Lit_Chars val:'\t\tgit config git-p4.skipSubmitEdit true &&\n' span_id:846) (Token id: Id.Lit_Chars val: '\t\tgit config git-p4.attemptRCSCleanup true &&\n' span_id: 847 ) (Token id:Id.Lit_Chars val:'\t\tgit p4 submit\n' span_id:848) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:849) (Token id:Id.Lit_Chars val:'\t(\n' span_id:850) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:851) (Token id:Id.Lit_Chars val:'\t\tp4 sync &&\n' span_id:852) (Token id: Id.Lit_Chars val: '\t\tgrep "NewKW2.*Revision.*[0-9]" kwfile1.c\n' span_id: 853 ) (Token id:Id.Lit_Chars val:'\n' span_id:854) (Token id:Id.Lit_Chars val:'\t)\n' span_id:855) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'kill p4d' span_id:862))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:866) (Token id:Id.Lit_Chars val:'\tkill_p4d\n' span_id:867) ) } ) (C {(test_done)}) ] )