(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:'Test export of commits to CVS' span_id:14))} spids: [12] ) ] ) (C {(.)} {(./test-lib.sh)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children:[(C {(test_have_prereq)} {(PERL)})] negated:T) terminator: (Token id:Id.Op_Semi val:';' span_id:30) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:skip_all) op: assign_op.Equal rhs: { (SQ (Token id: Id.Lit_Chars val: 'skipping git cvsexportcommit tests, perl not available' span_id: 37 ) ) } spids: [35] ) ] ) (C {(test_done)}) ] spids: [23 32] ) ] ) (command.Simple words: [{(cvs)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:48) fd: -1 arg_word: {(/dev/null)} ) (redir.Redir op:(Token id:Id.Redir_GreatAnd val:'2>&' span_id:51) fd:2 arg_word:{(1)}) ] ) (command.If arms: [ (if_arm cond: [(C {(test)} {($ Id.VSub_QMark '$?')} {(-ne)} {(1)})] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:skip_all) op: assign_op.Equal rhs: { (SQ (Token id: Id.Lit_Chars val: 'skipping git cvsexportcommit tests, cvs not found' span_id: 69 ) ) } spids: [67] ) ] ) (C {(test_done)}) ] spids: [54 64] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CVSROOT) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$PWD') (/tmpcvsroot)} spids: [78] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CVSWORK) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$PWD') (/cvswork)} spids: [82] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_DIR) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$PWD') (/.git)} spids: [86] ) ] ) (C {(export)} {(CVSROOT)} {(CVSWORK)} {(GIT_DIR)}) (C {(rm)} {(-rf)} {(DQ ($ Id.VSub_DollarName '$CVSROOT'))} {(DQ ($ Id.VSub_DollarName '$CVSWORK'))}) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DPipe] children: [ (C {(cvs)} {(init)}) (C {(test)} {(-d)} {(DQ ($ Id.VSub_DollarName '$CVSROOT'))}) (C {(cvs)} {(-Q)} {(co)} {(-d)} {(DQ ($ Id.VSub_DollarName '$CVSWORK'))} {(.)}) (command.Simple words: [{(echo)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:146) fd: -1 arg_word: {(empty)} ) ] ) (C {(git)} {(add)} {(empty)}) (command.Simple words: [{(git)} {(commit)} {(-q)} {(-a)} {(-m)} {(DQ (Initial))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:173) fd: 2 arg_word: {(/dev/null)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:178) arg_word: {(1)} ) ] ) (command.ShFunction name: check_entries body: (command.BraceGroup children: [ (command.Pipeline children: [ (C {(sed)} {(-ne)} {(SQ (Token id:Id.Lit_Chars val:'/^\\//p' span_id:200))} {(DQ ($ Id.VSub_Number '$1') (/CVS/Entries))} ) (C {(sort)}) (command.Simple words: [{(cut)} {(-d/)} {(-f2) (Id.Lit_Comma ',') (3) (Id.Lit_Comma ',') (5)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:224) fd: -1 arg_word: {(actual)} ) ] ) ] negated: F ) (command.If arms: [ (if_arm cond: [(C {(test)} {(-z)} {(DQ ($ Id.VSub_Number '$2'))})] action: [ (command.Simple redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:242) fd: -1 arg_word: {(expected)} ) ] ) ] spids: [228 239] ) ] else_action: [ (command.Pipeline children: [ (C {(printf)} {(SQ (Token id:Id.Lit_Chars val:'%s\\n' span_id:252))} {(DQ ($ Id.VSub_Number '$2'))} ) (command.Simple words: [ {(tr)} {(SQ (Token id:Id.Lit_Chars val:'|' span_id:264))} {(SQ (Token id:Id.Lit_Chars val:'\\012' span_id:268))} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:271) fd: -1 arg_word: {(expected)} ) ] ) ] negated: F ) ] ) (C {(test_cmp)} {(expected)} {(actual)}) ] ) ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'New file' span_id:292))} { (SQ (Token id:Id.Lit_Chars val:'mkdir A B C D E F &&\n' span_id:298) (Token id:Id.Lit_Chars val:' echo hello1 >A/newfile1.txt &&\n' span_id:299) (Token id:Id.Lit_Chars val:' echo hello2 >B/newfile2.txt &&\n' span_id:300) (Token id: Id.Lit_Chars val: ' cp "$TEST_DIRECTORY"/test-binary-1.png C/newfile3.png &&\n' span_id: 301 ) (Token id: Id.Lit_Chars val: ' cp "$TEST_DIRECTORY"/test-binary-1.png D/newfile4.png &&\n' span_id: 302 ) (Token id:Id.Lit_Chars val:' git add A/newfile1.txt &&\n' span_id:303) (Token id:Id.Lit_Chars val:' git add B/newfile2.txt &&\n' span_id:304) (Token id:Id.Lit_Chars val:' git add C/newfile3.png &&\n' span_id:305) (Token id:Id.Lit_Chars val:' git add D/newfile4.png &&\n' span_id:306) (Token id:Id.Lit_Chars val:' git commit -a -m "Test: New file" &&\n' span_id:307) (Token id: Id.Lit_Chars val: ' id=$(git rev-list --max-count=1 HEAD) &&\n' span_id: 308 ) (Token id:Id.Lit_Chars val:' (cd "$CVSWORK" &&\n' span_id:309) (Token id:Id.Lit_Chars val:' git cvsexportcommit -c $id &&\n' span_id:310) (Token id:Id.Lit_Chars val:' check_entries A "newfile1.txt/1.1/" &&\n' span_id:311) (Token id: Id.Lit_Chars val: ' check_entries B "newfile2.txt/1.1/" &&\n' span_id: 312 ) (Token id:Id.Lit_Chars val:' check_entries C "newfile3.png/1.1/-kb" &&\n' span_id:313) (Token id: Id.Lit_Chars val: ' check_entries D "newfile4.png/1.1/-kb" &&\n' span_id: 314 ) (Token id:Id.Lit_Chars val:' test_cmp A/newfile1.txt ../A/newfile1.txt &&\n' span_id:315) (Token id: Id.Lit_Chars val: ' test_cmp B/newfile2.txt ../B/newfile2.txt &&\n' span_id: 316 ) (Token id:Id.Lit_Chars val:' test_cmp C/newfile3.png ../C/newfile3.png &&\n' span_id:317) (Token id: Id.Lit_Chars val: ' test_cmp D/newfile4.png ../D/newfile4.png\n' span_id: 318 ) (Token id:Id.Lit_Chars val:' )' span_id:319) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'Remove two files, add two and update two' span_id:328))} { (SQ (Token id:Id.Lit_Chars val:'echo Hello1 >>A/newfile1.txt &&\n' span_id:334) (Token id:Id.Lit_Chars val:' rm -f B/newfile2.txt &&\n' span_id:335) (Token id:Id.Lit_Chars val:' rm -f C/newfile3.png &&\n' span_id:336) (Token id:Id.Lit_Chars val:' echo Hello5 >E/newfile5.txt &&\n' span_id:337) (Token id: Id.Lit_Chars val: ' cp "$TEST_DIRECTORY"/test-binary-2.png D/newfile4.png &&\n' span_id: 338 ) (Token id: Id.Lit_Chars val: ' cp "$TEST_DIRECTORY"/test-binary-1.png F/newfile6.png &&\n' span_id: 339 ) (Token id:Id.Lit_Chars val:' git add E/newfile5.txt &&\n' span_id:340) (Token id:Id.Lit_Chars val:' git add F/newfile6.png &&\n' span_id:341) (Token id:Id.Lit_Chars val:' git commit -a -m "Test: Remove, add and update" &&\n' span_id:342) (Token id: Id.Lit_Chars val: ' id=$(git rev-list --max-count=1 HEAD) &&\n' span_id: 343 ) (Token id:Id.Lit_Chars val:' (cd "$CVSWORK" &&\n' span_id:344) (Token id:Id.Lit_Chars val:' git cvsexportcommit -c $id &&\n' span_id:345) (Token id:Id.Lit_Chars val:' check_entries A "newfile1.txt/1.2/" &&\n' span_id:346) (Token id:Id.Lit_Chars val:' check_entries B "" &&\n' span_id:347) (Token id:Id.Lit_Chars val:' check_entries C "" &&\n' span_id:348) (Token id: Id.Lit_Chars val: ' check_entries D "newfile4.png/1.2/-kb" &&\n' span_id: 349 ) (Token id:Id.Lit_Chars val:' check_entries E "newfile5.txt/1.1/" &&\n' span_id:350) (Token id: Id.Lit_Chars val: ' check_entries F "newfile6.png/1.1/-kb" &&\n' span_id: 351 ) (Token id:Id.Lit_Chars val:' test_cmp A/newfile1.txt ../A/newfile1.txt &&\n' span_id:352) (Token id: Id.Lit_Chars val: ' test_cmp D/newfile4.png ../D/newfile4.png &&\n' span_id: 353 ) (Token id:Id.Lit_Chars val:' test_cmp E/newfile5.txt ../E/newfile5.txt &&\n' span_id:354) (Token id: Id.Lit_Chars val: ' test_cmp F/newfile6.png ../F/newfile6.png\n' span_id: 355 ) (Token id:Id.Lit_Chars val:' )' span_id:356) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'Fail to change binary more than one generation old' span_id: 368 ) ) } { (SQ (Token id:Id.Lit_Chars val:'cat F/newfile6.png >>D/newfile4.png &&\n' span_id:374) (Token id: Id.Lit_Chars val: ' git commit -a -m "generatiion 1" &&\n' span_id: 375 ) (Token id:Id.Lit_Chars val:' cat F/newfile6.png >>D/newfile4.png &&\n' span_id:376) (Token id: Id.Lit_Chars val: ' git commit -a -m "generation 2" &&\n' span_id: 377 ) (Token id:Id.Lit_Chars val:' id=$(git rev-list --max-count=1 HEAD) &&\n' span_id:378) (Token id:Id.Lit_Chars val:' (cd "$CVSWORK" &&\n' span_id:379) (Token id:Id.Lit_Chars val:' test_must_fail git cvsexportcommit -c $id\n' span_id:380) (Token id:Id.Lit_Chars val:' )' span_id:381) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'Remove only binary files' span_id:434))} { (SQ (Token id:Id.Lit_Chars val:'git reset --hard HEAD^^ &&\n' span_id:440) (Token id:Id.Lit_Chars val:' rm -f D/newfile4.png &&\n' span_id:441) (Token id: Id.Lit_Chars val: ' git commit -a -m "test: remove only a binary file" &&\n' span_id: 442 ) (Token id:Id.Lit_Chars val:' id=$(git rev-list --max-count=1 HEAD) &&\n' span_id:443) (Token id:Id.Lit_Chars val:' (cd "$CVSWORK" &&\n' span_id:444) (Token id:Id.Lit_Chars val:' git cvsexportcommit -c $id &&\n' span_id:445) (Token id: Id.Lit_Chars val: ' check_entries A "newfile1.txt/1.2/" &&\n' span_id: 446 ) (Token id:Id.Lit_Chars val:' check_entries B "" &&\n' span_id:447) (Token id:Id.Lit_Chars val:' check_entries C "" &&\n' span_id:448) (Token id:Id.Lit_Chars val:' check_entries D "" &&\n' span_id:449) (Token id: Id.Lit_Chars val: ' check_entries E "newfile5.txt/1.1/" &&\n' span_id: 450 ) (Token id:Id.Lit_Chars val:' check_entries F "newfile6.png/1.1/-kb" &&\n' span_id:451) (Token id: Id.Lit_Chars val: ' test_cmp A/newfile1.txt ../A/newfile1.txt &&\n' span_id: 452 ) (Token id:Id.Lit_Chars val:' test_cmp E/newfile5.txt ../E/newfile5.txt &&\n' span_id:453) (Token id: Id.Lit_Chars val: ' test_cmp F/newfile6.png ../F/newfile6.png\n' span_id: 454 ) (Token id:Id.Lit_Chars val:' )' span_id:455) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'Remove only a text file' span_id:464))} { (SQ (Token id:Id.Lit_Chars val:'rm -f A/newfile1.txt &&\n' span_id:470) (Token id: Id.Lit_Chars val: ' git commit -a -m "test: remove only a binary file" &&\n' span_id: 471 ) (Token id:Id.Lit_Chars val:' id=$(git rev-list --max-count=1 HEAD) &&\n' span_id:472) (Token id:Id.Lit_Chars val:' (cd "$CVSWORK" &&\n' span_id:473) (Token id:Id.Lit_Chars val:' git cvsexportcommit -c $id &&\n' span_id:474) (Token id:Id.Lit_Chars val:' check_entries A "" &&\n' span_id:475) (Token id:Id.Lit_Chars val:' check_entries B "" &&\n' span_id:476) (Token id:Id.Lit_Chars val:' check_entries C "" &&\n' span_id:477) (Token id:Id.Lit_Chars val:' check_entries D "" &&\n' span_id:478) (Token id: Id.Lit_Chars val: ' check_entries E "newfile5.txt/1.1/" &&\n' span_id: 479 ) (Token id:Id.Lit_Chars val:' check_entries F "newfile6.png/1.1/-kb" &&\n' span_id:480) (Token id: Id.Lit_Chars val: ' test_cmp E/newfile5.txt ../E/newfile5.txt &&\n' span_id: 481 ) (Token id:Id.Lit_Chars val:' test_cmp F/newfile6.png ../F/newfile6.png\n' span_id:482) (Token id:Id.Lit_Chars val:' )' span_id:483) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'New file with spaces in file name' span_id:492))} { (SQ (Token id:Id.Lit_Chars val:'mkdir "G g" &&\n' span_id:498) (Token id: Id.Lit_Chars val: ' echo ok then >"G g/with spaces.txt" &&\n' span_id: 499 ) (Token id:Id.Lit_Chars val:' git add "G g/with spaces.txt" && \\\n' span_id:500) (Token id: Id.Lit_Chars val: ' cp "$TEST_DIRECTORY"/test-binary-1.png "G g/with spaces.png" && \\\n' span_id: 501 ) (Token id:Id.Lit_Chars val:' git add "G g/with spaces.png" &&\n' span_id:502) (Token id: Id.Lit_Chars val: ' git commit -a -m "With spaces" &&\n' span_id: 503 ) (Token id:Id.Lit_Chars val:' id=$(git rev-list --max-count=1 HEAD) &&\n' span_id:504) (Token id:Id.Lit_Chars val:' (cd "$CVSWORK" &&\n' span_id:505) (Token id:Id.Lit_Chars val:' git cvsexportcommit -c $id &&\n' span_id:506) (Token id: Id.Lit_Chars val: ' check_entries "G g" "with spaces.png/1.1/-kb|with spaces.txt/1.1/"\n' span_id: 507 ) (Token id:Id.Lit_Chars val:' )' span_id:508) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'Update file with spaces in file name' span_id:517))} { (SQ (Token id:Id.Lit_Chars val:'echo Ok then >>"G g/with spaces.txt" &&\n' span_id:523) (Token id: Id.Lit_Chars val: ' cat "$TEST_DIRECTORY"/test-binary-1.png >>"G g/with spaces.png" && \\\n' span_id: 524 ) (Token id:Id.Lit_Chars val:' git add "G g/with spaces.png" &&\n' span_id:525) (Token id: Id.Lit_Chars val: ' git commit -a -m "Update with spaces" &&\n' span_id: 526 ) (Token id:Id.Lit_Chars val:' id=$(git rev-list --max-count=1 HEAD) &&\n' span_id:527) (Token id:Id.Lit_Chars val:' (cd "$CVSWORK" &&\n' span_id:528) (Token id:Id.Lit_Chars val:' git cvsexportcommit -c $id\n' span_id:529) (Token id: Id.Lit_Chars val: ' check_entries "G g" "with spaces.png/1.2/-kb|with spaces.txt/1.2/"\n' span_id: 530 ) (Token id:Id.Lit_Chars val:' )' span_id:531) ) } ) (command.If arms: [ (if_arm cond: [ (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:p) op: assign_op.Equal rhs: { (DQ ( '\xc3\x85/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/\xc3\xa5/\xc3\xa4/\xc3\xb6' ) ) } spids: [543] ) ] ) (C {(mkdir)} {(-p)} {(DQ (tst/) ($ Id.VSub_DollarName '$p'))}) (command.Simple words: [{(date)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:565) fd: -1 arg_word: {(DQ (tst/) ($ Id.VSub_DollarName '$p') (/day))} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:found) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:576) command_list: (command.CommandList children: [(C {(find)} {(tst)} {(-type)} {(f)} {(-print)})] ) ) } spids: [575] ) ] ) (C {(test)} {(DQ (z) ($ Id.VSub_DollarName '$found'))} {(Id.Lit_Equals '=')} {(DQ (ztst/) ($ Id.VSub_DollarName '$p') (/day))} ) (C {(rm)} {(-fr)} {(tst)}) ] ) ] action: [ (C {(test_expect_success)} {(Id.KW_Bang '!') (MINGW)} {(SQ (Token id:Id.Lit_Chars val:'File with non-ascii file name' span_id:629))} { (SQ (Token id: Id.Lit_Chars val: 'mkdir -p \xc3\x85/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/\xc3\xa5/\xc3\xa4/\xc3\xb6 &&\n' span_id: 635 ) (Token id: Id.Lit_Chars val: ' echo Foo >\xc3\x85/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/\xc3\xa5/\xc3\xa4/\xc3\xb6/g\xc3\xa5rdets\xc3\xa5g\xc3\xa5rdet.txt &&\n' span_id: 636 ) (Token id: Id.Lit_Chars val: ' git add \xc3\x85/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/\xc3\xa5/\xc3\xa4/\xc3\xb6/g\xc3\xa5rdets\xc3\xa5g\xc3\xa5rdet.txt &&\n' span_id: 637 ) (Token id: Id.Lit_Chars val: ' cp "$TEST_DIRECTORY"/test-binary-1.png \xc3\x85/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/\xc3\xa5/\xc3\xa4/\xc3\xb6/g\xc3\xa5rdets\xc3\xa5g\xc3\xa5rdet.png &&\n' span_id: 638 ) (Token id: Id.Lit_Chars val: ' git add \xc3\x85/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/\xc3\xa5/\xc3\xa4/\xc3\xb6/g\xc3\xa5rdets\xc3\xa5g\xc3\xa5rdet.png &&\n' span_id: 639 ) (Token id: Id.Lit_Chars val: ' git commit -a -m "G\xc3\xa5r det s\xc3\xa5 g\xc3\xa5r det" && \\\n' span_id: 640 ) (Token id:Id.Lit_Chars val:' id=$(git rev-list --max-count=1 HEAD) &&\n' span_id:641) (Token id: Id.Lit_Chars val: ' (cd "$CVSWORK" &&\n' span_id: 642 ) (Token id:Id.Lit_Chars val:' git cvsexportcommit -v -c $id &&\n' span_id:643) (Token id: Id.Lit_Chars val: ' check_entries \\\n' span_id: 644 ) (Token id: Id.Lit_Chars val: ' "\xc3\x85/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/\xc3\xa5/\xc3\xa4/\xc3\xb6" \\\n' span_id: 645 ) (Token id: Id.Lit_Chars val: ' "g\xc3\xa5rdets\xc3\xa5g\xc3\xa5rdet.png/1.1/-kb|g\xc3\xa5rdets\xc3\xa5g\xc3\xa5rdet.txt/1.1/"\n' span_id: 646 ) (Token id:Id.Lit_Chars val:' )' span_id:647) ) } ) ] spids: [541 615] ) ] ) (C {(rm)} {(-fr)} {(tst)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'Mismatching patch should fail' span_id:666))} { (SQ (Token id:Id.Lit_Chars val:'date >>"E/newfile5.txt" &&\n' span_id:672) (Token id:Id.Lit_Chars val:' git add "E/newfile5.txt" &&\n' span_id:673) (Token id:Id.Lit_Chars val:' git commit -a -m "Update one" &&\n' span_id:674) (Token id:Id.Lit_Chars val:' date >>"E/newfile5.txt" &&\n' span_id:675) (Token id:Id.Lit_Chars val:' git add "E/newfile5.txt" &&\n' span_id:676) (Token id: Id.Lit_Chars val: ' git commit -a -m "Update two" &&\n' span_id: 677 ) (Token id:Id.Lit_Chars val:' id=$(git rev-list --max-count=1 HEAD) &&\n' span_id:678) (Token id:Id.Lit_Chars val:' (cd "$CVSWORK" &&\n' span_id:679) (Token id:Id.Lit_Chars val:' test_must_fail git cvsexportcommit -c $id\n' span_id:680) (Token id:Id.Lit_Chars val:' )' span_id:681) ) } ) (C {(test_expect_success)} {(FILEMODE)} {(SQ (Token id:Id.Lit_Chars val:'Retain execute bit' span_id:692))} { (SQ (Token id:Id.Lit_Chars val:'mkdir G &&\n' span_id:698) (Token id:Id.Lit_Chars val:' echo executeon >G/on &&\n' span_id:699) (Token id:Id.Lit_Chars val:' chmod +x G/on &&\n' span_id:700) (Token id:Id.Lit_Chars val:' echo executeoff >G/off &&\n' span_id:701) (Token id:Id.Lit_Chars val:' git add G/on &&\n' span_id:702) (Token id:Id.Lit_Chars val:' git add G/off &&\n' span_id:703) (Token id:Id.Lit_Chars val:' git commit -a -m "Execute test" &&\n' span_id:704) (Token id:Id.Lit_Chars val:' (cd "$CVSWORK" &&\n' span_id:705) (Token id:Id.Lit_Chars val:' git cvsexportcommit -c HEAD\n' span_id:706) (Token id:Id.Lit_Chars val:' test -x G/on &&\n' span_id:707) (Token id:Id.Lit_Chars val:' ! test -x G/off\n' span_id:708) (Token id:Id.Lit_Chars val:' )' span_id:709) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'-w option should work with relative GIT_DIR' span_id:716))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:720) (Token id:Id.Lit_Chars val:' mkdir W &&\n' span_id:721) (Token id:Id.Lit_Chars val:' echo foobar >W/file1.txt &&\n' span_id:722) (Token id:Id.Lit_Chars val:' echo bazzle >W/file2.txt &&\n' span_id:723) (Token id:Id.Lit_Chars val:' git add W/file1.txt &&\n' span_id:724) (Token id:Id.Lit_Chars val:' git add W/file2.txt &&\n' span_id:725) (Token id:Id.Lit_Chars val:' git commit -m "More updates" &&\n' span_id:726) (Token id: Id.Lit_Chars val: ' id=$(git rev-list --max-count=1 HEAD) &&\n' span_id: 727 ) (Token id:Id.Lit_Chars val:' (cd "$GIT_DIR" &&\n' span_id:728) (Token id: Id.Lit_Chars val: ' GIT_DIR=. git cvsexportcommit -w "$CVSWORK" -c $id &&\n' span_id: 729 ) (Token id: Id.Lit_Chars val: ' check_entries "$CVSWORK/W" "file1.txt/1.1/|file2.txt/1.1/" &&\n' span_id: 730 ) (Token id:Id.Lit_Chars val:' test_cmp "$CVSWORK/W/file1.txt" ../W/file1.txt &&\n' span_id:731) (Token id: Id.Lit_Chars val: ' test_cmp "$CVSWORK/W/file2.txt" ../W/file2.txt\n' span_id: 732 ) (Token id:Id.Lit_Chars val:' )\n' span_id:733) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'check files before directories' span_id:740))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:744) (Token id:Id.Lit_Chars val:'\n' span_id:745) (Token id:Id.Lit_Chars val:'\techo Notes > release-notes &&\n' span_id:746) (Token id:Id.Lit_Chars val:'\tgit add release-notes &&\n' span_id:747) (Token id: Id.Lit_Chars val: '\tgit commit -m "Add release notes" release-notes &&\n' span_id: 748 ) (Token id:Id.Lit_Chars val:'\tid=$(git rev-parse HEAD) &&\n' span_id:749) (Token id: Id.Lit_Chars val: '\tgit cvsexportcommit -w "$CVSWORK" -c $id &&\n' span_id: 750 ) (Token id:Id.Lit_Chars val:'\n' span_id:751) (Token id:Id.Lit_Chars val:'\techo new > DS &&\n' span_id:752) (Token id:Id.Lit_Chars val:'\techo new > E/DS &&\n' span_id:753) (Token id:Id.Lit_Chars val:'\techo modified > release-notes &&\n' span_id:754) (Token id:Id.Lit_Chars val:'\tgit add DS E/DS release-notes &&\n' span_id:755) (Token id: Id.Lit_Chars val: '\tgit commit -m "Add two files with the same basename" &&\n' span_id: 756 ) (Token id:Id.Lit_Chars val:'\tid=$(git rev-parse HEAD) &&\n' span_id:757) (Token id: Id.Lit_Chars val: '\tgit cvsexportcommit -w "$CVSWORK" -c $id &&\n' span_id: 758 ) (Token id: Id.Lit_Chars val: '\tcheck_entries "$CVSWORK/E" "DS/1.1/|newfile5.txt/1.1/" &&\n' span_id: 759 ) (Token id: Id.Lit_Chars val: '\tcheck_entries "$CVSWORK" "DS/1.1/|release-notes/1.2/" &&\n' span_id: 760 ) (Token id:Id.Lit_Chars val:'\ttest_cmp "$CVSWORK/DS" DS &&\n' span_id:761) (Token id:Id.Lit_Chars val:'\ttest_cmp "$CVSWORK/E/DS" E/DS &&\n' span_id:762) (Token id:Id.Lit_Chars val:'\ttest_cmp "$CVSWORK/release-notes" release-notes\n' span_id:763) (Token id:Id.Lit_Chars val:'\n' span_id:764) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 're-commit a removed filename which remains in CVS attic' span_id: 771 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:775) (Token id:Id.Lit_Chars val:'\n' span_id:776) (Token id:Id.Lit_Chars val:' (cd "$CVSWORK" &&\n' span_id:777) (Token id:Id.Lit_Chars val:' echo >attic_gremlin &&\n' span_id:778) (Token id:Id.Lit_Chars val:' cvs -Q add attic_gremlin &&\n' span_id:779) (Token id:Id.Lit_Chars val:' cvs -Q ci -m "added attic_gremlin" &&\n' span_id:780) (Token id:Id.Lit_Chars val:' rm attic_gremlin &&\n' span_id:781) (Token id:Id.Lit_Chars val:' cvs -Q rm attic_gremlin &&\n' span_id:782) (Token id: Id.Lit_Chars val: ' cvs -Q ci -m "removed attic_gremlin") &&\n' span_id: 783 ) (Token id:Id.Lit_Chars val:'\n' span_id:784) (Token id:Id.Lit_Chars val:' echo > attic_gremlin &&\n' span_id:785) (Token id:Id.Lit_Chars val:' git add attic_gremlin &&\n' span_id:786) (Token id: Id.Lit_Chars val: ' git commit -m "Added attic_gremlin" &&\n' span_id: 787 ) (Token id:Id.Lit_Chars val:'\tgit cvsexportcommit -w "$CVSWORK" -c HEAD &&\n' span_id:788) (Token id: Id.Lit_Chars val: ' (cd "$CVSWORK"; cvs -Q update -d) &&\n' span_id: 789 ) (Token id:Id.Lit_Chars val:' test -f "$CVSWORK/attic_gremlin"\n' span_id:790) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'commit a file with leading spaces in the name' span_id:806))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:810) (Token id:Id.Lit_Chars val:'\n' span_id:811) (Token id:Id.Lit_Chars val:'\techo space > " space" &&\n' span_id:812) (Token id:Id.Lit_Chars val:'\tgit add " space" &&\n' span_id:813) (Token id: Id.Lit_Chars val: '\tgit commit -m "Add a file with a leading space" &&\n' span_id: 814 ) (Token id:Id.Lit_Chars val:'\tid=$(git rev-parse HEAD) &&\n' span_id:815) (Token id: Id.Lit_Chars val: '\tgit cvsexportcommit -w "$CVSWORK" -c $id &&\n' span_id: 816 ) (Token id: Id.Lit_Chars val: '\tcheck_entries "$CVSWORK" " space/1.1/|DS/1.1/|attic_gremlin/1.3/|release-notes/1.2/" &&\n' span_id: 817 ) (Token id:Id.Lit_Chars val:'\ttest_cmp "$CVSWORK/ space" " space"\n' span_id:818) (Token id:Id.Lit_Chars val:'\n' span_id:819) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'use the same checkout for Git and CVS' span_id:826))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:830) (Token id:Id.Lit_Chars val:'\n' span_id:831) (Token id:Id.Lit_Chars val:'\t(mkdir shared &&\n' span_id:832) (Token id:Id.Lit_Chars val:'\t cd shared &&\n' span_id:833) (Token id:Id.Lit_Chars val:'\t sane_unset GIT_DIR &&\n' span_id:834) (Token id:Id.Lit_Chars val:'\t cvs co . &&\n' span_id:835) (Token id:Id.Lit_Chars val:'\t git init &&\n' span_id:836) (Token id:Id.Lit_Chars val:'\t git add " space" &&\n' span_id:837) (Token id: Id.Lit_Chars val: '\t git commit -m "fake initial commit" &&\n' span_id: 838 ) (Token id:Id.Lit_Chars val:'\t echo Hello >> " space" &&\n' span_id:839) (Token id: Id.Lit_Chars val: '\t git commit -m "Another change" " space" &&\n' span_id: 840 ) (Token id:Id.Lit_Chars val:'\t git cvsexportcommit -W -p -u -c HEAD &&\n' span_id:841) (Token id:Id.Lit_Chars val:'\t grep Hello " space" &&\n' span_id:842) (Token id:Id.Lit_Chars val:'\t git diff-files)\n' span_id:843) (Token id:Id.Lit_Chars val:'\n' span_id:844) ) } ) (C {(test_done)}) ] )