(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-cvsserver and git refspecs\n' span_id:6) (Token id:Id.Lit_Chars val:'\n' span_id:7) (Token id: Id.Lit_Chars val: 'tests ability for git-cvsserver to switch between and compare\n' span_id: 8 ) (Token id:Id.Lit_Chars val:'tags, branches and other git refspecs' span_id:9) ) } spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (command.ShFunction name: check_start_tree body: (command.BraceGroup children: [ (C {(rm)} {(-f)} {(DQ ($ Id.VSub_DollarName '$WORKDIR') (/list.expected))}) (command.Simple words: [{(echo)} {(DQ ('start ') ($ Id.VSub_Number '$1'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:46) fd: -1 arg_word: {(DQ (${ Id.VSub_Name WORKDIR) (/check.log))} ) ] ) ] ) ) (command.ShFunction name: check_file body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:sandbox) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [64] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:file) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$2'))} spids: [70] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ver) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$3'))} spids: [76] ) ] ) (command.Simple words: [{(git)} {(show)} {(DQ (${ Id.VSub_Name ver) (':') (${ Id.VSub_Name file))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:101) fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$WORKDIR') (/check.got))} ) (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:107) fd: 2 arg_word: {(DQ ($ Id.VSub_DollarName '$WORKDIR') (/check.stderr))} ) ] more_env: [(env_pair name:GIT_DIR val:{($ Id.VSub_DollarName '$SERVERDIR')} spids:[82])] ) (C {(test_cmp)} {(DQ ($ Id.VSub_DollarName '$WORKDIR') (/check.got))} {(DQ ($ Id.VSub_DollarName '$sandbox') (/) ($ Id.VSub_DollarName '$file'))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:stat) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [128] ) ] ) (command.Simple words: [ {(echo)} { (DQ ('check_file ') ($ Id.VSub_DollarName '$sandbox') (' ') ($ Id.VSub_DollarName '$file') (' ') ($ Id.VSub_DollarName '$ver') (' : ') ($ Id.VSub_DollarName '$stat') ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:145) fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$WORKDIR') (/check.log))} ) ] ) (command.Simple words: [{(echo)} {(DQ ($ Id.VSub_DollarName '$file'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:158) fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$WORKDIR') (/list.expected))} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:165) arg_word: {($ Id.VSub_DollarName '$stat')} ) ] ) ) (command.ShFunction name: check_end_tree 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:sandbox) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [179] ) ] ) (command.Simple words: [ {(find)} {(DQ ($ Id.VSub_DollarName '$sandbox'))} {(-name)} {(CVS)} {(-prune)} {(-o)} {(-type)} {(f)} {(-print)} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:207) fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$WORKDIR') (/list.actual))} ) ] ) (command.Simple words: [{(sort)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:218) fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$WORKDIR') (/list.expected))} ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:224) fd: -1 arg_word: {(expected)} ) ] ) (command.Pipeline children: [ (command.Simple words: [{(sort)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:232) fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$WORKDIR') (/list.actual))} ) ] ) (command.Simple words: [{(sed)} {(-e)} {(DQ ('s%cvswork/%%'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:248) fd: -1 arg_word: {(actual)} ) ] ) ] negated: F ) (C {(test_cmp)} {(expected)} {(actual)}) (C {(rm)} {(expected)} {(actual)}) ] ) ] ) ) (command.ShFunction name: check_end_full_tree body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp 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:sandbox) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [279] ) ] ) (command.Simple words: [{(sort)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:289) fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$WORKDIR') (/list.expected))} ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:295) fd: -1 arg_word: {(expected)} ) ] ) (command.Pipeline children: [ (C {(find)} {(DQ ($ Id.VSub_DollarName '$sandbox'))} {(-name)} {(CVS)} {(-prune)} {(-o)} {(-type)} {(f)} {(-print)} ) (C {(sed)} {(-e)} {(DQ ('s%') ($ Id.VSub_DollarName '$sandbox') ('/%%'))}) (command.Simple words: [{(sort)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:338) fd: -1 arg_word: {(act1)} ) ] ) ] negated: F ) (C {(test_cmp)} {(expected)} {(act1)}) (command.Pipeline children: [ (C {(git)} {(ls-tree)} {(--name-only)} {(-r)} {(DQ ($ Id.VSub_Number '$2'))}) (command.Simple words: [{(sort)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:369) fd: -1 arg_word: {(act2)} ) ] ) ] negated: F ) (C {(test_cmp)} {(expected)} {(act2)}) (C {(rm)} {(expected)} {(act1)} {(act2)}) ] ) ] ) ) (command.ShFunction name: check_diff body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:diffFile) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [406] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:vOld) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$2'))} spids: [412] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:vNew) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$3'))} spids: [418] ) ] ) (C {(rm)} {(-rf)} {(diffSandbox)}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(git)} {(clone)} {(-q)} {(-n)} {(.)} {(diffSandbox)}) (command.Subshell command_list: (command.CommandList children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (C {(cd)} {(diffSandbox)}) (C {(git)} {(checkout)} {(DQ ($ Id.VSub_DollarName '$vOld'))}) (command.Simple words: [{(git)} {(apply)} {(-p0)} {(--index)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:475) fd: -1 arg_word: {(DQ (../) ($ Id.VSub_DollarName '$diffFile'))} ) ] ) (C {(git)} {(diff)} {(--exit-code)} {(DQ ($ Id.VSub_DollarName '$vNew'))}) ] ) ] ) redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:497) fd: -1 arg_word: {(check_diff_apply.out)} ) (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:500) fd: 2 arg_word: {(1)} ) ] ) ] ) ] ) ) (command.Simple words: [{(cvs)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:512) fd: -1 arg_word: {(/dev/null)} ) (redir.Redir op:(Token id:Id.Redir_GreatAnd val:'2>&' span_id:515) 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-cvsserver tests, cvs not found' span_id: 533 ) ) } spids: [531] ) ] ) (C {(test_done)}) ] spids: [518 528] ) ] ) (command.If arms: [ (if_arm cond: [(command.Pipeline children:[(C {(test_have_prereq)} {(PERL)})] negated:T)] 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-cvsserver tests, perl not available' span_id: 554 ) ) } spids: [552] ) ] ) (C {(test_done)}) ] spids: [541 549] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [ {(perl)} {(-e)} {(SQ (Token id:Id.Lit_Chars val:'use DBI; use DBD::SQLite' span_id:567))} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:570) fd: -1 arg_word: {(/dev/null)} ) (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:573) fd: 2 arg_word: {(1)} ) ] ) (command.BraceGroup children: [ (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-cvsserver tests, Perl SQLite interface unavailable' span_id: 583 ) ) } spids: [581] ) ] ) (C {(test_done)}) ] ) ] ) (C {(unset)} {(GIT_DIR)} {(GIT_CONFIG)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WORKDIR) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$PWD')} spids: [598] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SERVERDIR) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$PWD') (/gitcvs.git)} spids: [601] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:git_config) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$SERVERDIR') (/config))} spids: [605] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CVSROOT) op: assign_op.Equal rhs: {(DQ (':fork:') ($ Id.VSub_DollarName '$SERVERDIR'))} spids: [611] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CVSWORK) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$PWD') (/cvswork))} spids: [617] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CVS_SERVER) op: assign_op.Equal rhs: {(git-cvsserver)} spids: [623] ) ] ) (C {(export)} {(CVSROOT)} {(CVS_SERVER)}) (C {(rm)} {(-rf)} {(DQ ($ Id.VSub_DollarName '$CVSWORK'))} {(DQ ($ Id.VSub_DollarName '$SERVERDIR'))}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup v1, b1' span_id:648))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:652) (Token id: Id.Lit_Chars val: '\techo "Simple text file" >textfile.c &&\n' span_id: 653 ) (Token id:Id.Lit_Chars val:'\techo "t2" >t2 &&\n' span_id:654) (Token id:Id.Lit_Chars val:'\tmkdir adir &&\n' span_id:655) (Token id:Id.Lit_Chars val:'\techo "adir/afile line1" >adir/afile &&\n' span_id:656) (Token id: Id.Lit_Chars val: '\techo "adir/afile line2" >>adir/afile &&\n' span_id: 657 ) (Token id:Id.Lit_Chars val:'\techo "adir/afile line3" >>adir/afile &&\n' span_id:658) (Token id: Id.Lit_Chars val: '\techo "adir/afile line4" >>adir/afile &&\n' span_id: 659 ) (Token id:Id.Lit_Chars val:'\techo "adir/a2file" >>adir/a2file &&\n' span_id:660) (Token id:Id.Lit_Chars val:'\tmkdir adir/bdir &&\n' span_id:661) (Token id:Id.Lit_Chars val:'\techo "adir/bdir/bfile line 1" >adir/bdir/bfile &&\n' span_id:662) (Token id: Id.Lit_Chars val: '\techo "adir/bdir/bfile line 2" >>adir/bdir/bfile &&\n' span_id: 663 ) (Token id:Id.Lit_Chars val:'\techo "adir/bdir/b2file" >adir/bdir/b2file &&\n' span_id:664) (Token id:Id.Lit_Chars val:'\tgit add textfile.c t2 adir &&\n' span_id:665) (Token id:Id.Lit_Chars val:'\tgit commit -q -m "First Commit (v1)" &&\n' span_id:666) (Token id:Id.Lit_Chars val:'\tgit tag v1 &&\n' span_id:667) (Token id:Id.Lit_Chars val:'\tgit branch b1 &&\n' span_id:668) (Token id: Id.Lit_Chars val: '\tgit clone -q --bare "$WORKDIR/.git" "$SERVERDIR" >/dev/null 2>&1 &&\n' span_id: 669 ) (Token id: Id.Lit_Chars val: '\tGIT_DIR="$SERVERDIR" git config --bool gitcvs.enabled true &&\n' span_id: 670 ) (Token id: Id.Lit_Chars val: '\tGIT_DIR="$SERVERDIR" git config gitcvs.logfile "$SERVERDIR/gitcvs.log"\n' span_id: 671 ) ) } ) (C {(rm)} {(-rf)} {(cvswork)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cvs co v1' span_id:684))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:688) (Token id: Id.Lit_Chars val: '\tcvs -f -Q co -r v1 -d cvswork master >cvs.log 2>&1 &&\n' span_id: 689 ) (Token id:Id.Lit_Chars val:'\tcheck_start_tree cvswork &&\n' span_id:690) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork textfile.c v1 &&\n' span_id:691) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork t2 v1 &&\n' span_id:692) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/afile v1 &&\n' span_id:693) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/a2file v1 &&\n' span_id:694) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork adir/bdir/bfile v1 &&\n' span_id: 695 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/bdir/b2file v1 &&\n' span_id:696) (Token id:Id.Lit_Chars val:'\tcheck_end_tree cvswork\n' span_id:697) ) } ) (C {(rm)} {(-rf)} {(cvswork)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cvs co b1' span_id:710))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:714) (Token id: Id.Lit_Chars val: '\tcvs -f co -r b1 -d cvswork master >cvs.log 2>&1 &&\n' span_id: 715 ) (Token id:Id.Lit_Chars val:'\tcheck_start_tree cvswork &&\n' span_id:716) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork textfile.c v1 &&\n' span_id:717) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork t2 v1 &&\n' span_id:718) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/afile v1 &&\n' span_id:719) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/a2file v1 &&\n' span_id:720) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork adir/bdir/bfile v1 &&\n' span_id: 721 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/bdir/b2file v1 &&\n' span_id:722) (Token id:Id.Lit_Chars val:'\tcheck_end_tree cvswork\n' span_id:723) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cvs co b1 [cvswork3]' span_id:730))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:734) (Token id: Id.Lit_Chars val: '\tcvs -f co -r b1 -d cvswork3 master >cvs.log 2>&1 &&\n' span_id: 735 ) (Token id:Id.Lit_Chars val:'\tcheck_start_tree cvswork3 &&\n' span_id:736) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork3 textfile.c v1 &&\n' span_id: 737 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork3 t2 v1 &&\n' span_id:738) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork3 adir/afile v1 &&\n' span_id: 739 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork3 adir/a2file v1 &&\n' span_id:740) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork3 adir/bdir/bfile v1 &&\n' span_id: 741 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork3 adir/bdir/b2file v1 &&\n' span_id:742) (Token id:Id.Lit_Chars val:'\tcheck_end_full_tree cvswork3 v1\n' span_id:743) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'edit cvswork3 and save diff' span_id:750))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:754) (Token id:Id.Lit_Chars val:'\t(\n' span_id:755) (Token id:Id.Lit_Chars val:'\t\tcd cvswork3 &&\n' span_id:756) (Token id: Id.Lit_Chars val: '\t\tsed -e "s/line1/line1 - data/" adir/afile >adir/afileNEW &&\n' span_id: 757 ) (Token id:Id.Lit_Chars val:'\t\tmv -f adir/afileNEW adir/afile &&\n' span_id:758) (Token id:Id.Lit_Chars val:'\t\techo "afile5" >adir/afile5 &&\n' span_id:759) (Token id:Id.Lit_Chars val:'\t\trm t2 &&\n' span_id:760) (Token id:Id.Lit_Chars val:'\t\tcvs -f add adir/afile5 &&\n' span_id:761) (Token id:Id.Lit_Chars val:'\t\tcvs -f rm t2 &&\n' span_id:762) (Token id: Id.Lit_Chars val: '\t\t! cvs -f diff -N -u >"$WORKDIR/cvswork3edit.diff"\n' span_id: 763 ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:764) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup v1.2 on b1' span_id:771))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:775) (Token id:Id.Lit_Chars val:'\tgit checkout b1 &&\n' span_id:776) (Token id:Id.Lit_Chars val:'\techo "new v1.2" >t3 &&\n' span_id:777) (Token id:Id.Lit_Chars val:'\trm t2 &&\n' span_id:778) (Token id: Id.Lit_Chars val: '\tsed -e "s/line3/line3 - more data/" adir/afile >adir/afileNEW &&\n' span_id: 779 ) (Token id:Id.Lit_Chars val:'\tmv -f adir/afileNEW adir/afile &&\n' span_id:780) (Token id:Id.Lit_Chars val:'\trm adir/a2file &&\n' span_id:781) (Token id:Id.Lit_Chars val:'\techo "a3file" >>adir/a3file &&\n' span_id:782) (Token id: Id.Lit_Chars val: '\techo "bfile line 3" >>adir/bdir/bfile &&\n' span_id: 783 ) (Token id:Id.Lit_Chars val:'\trm adir/bdir/b2file &&\n' span_id:784) (Token id:Id.Lit_Chars val:'\techo "b3file" >adir/bdir/b3file &&\n' span_id:785) (Token id:Id.Lit_Chars val:'\tmkdir cdir &&\n' span_id:786) (Token id:Id.Lit_Chars val:'\techo "cdir/cfile" >cdir/cfile &&\n' span_id:787) (Token id:Id.Lit_Chars val:'\tgit add -A cdir adir t3 t2 &&\n' span_id:788) (Token id:Id.Lit_Chars val:'\tgit commit -q -m ' span_id:789) ) (v1.2) (SQ (Token id:Id.Lit_Chars val:' &&\n' span_id:793) (Token id:Id.Lit_Chars val:'\tgit tag v1.2 &&\n' span_id:794) (Token id:Id.Lit_Chars val:'\tgit push --tags gitcvs.git b1:b1\n' span_id:795) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cvs -f up (on b1 adir)' span_id:802))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:806) (Token id: Id.Lit_Chars val: '\t( cd cvswork/adir && cvs -f up -d ) >cvs.log 2>&1 &&\n' span_id: 807 ) (Token id:Id.Lit_Chars val:'\tcheck_start_tree cvswork &&\n' span_id:808) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork textfile.c v1 &&\n' span_id:809) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork t2 v1 &&\n' span_id:810) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork adir/afile v1.2 &&\n' span_id: 811 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/a3file v1.2 &&\n' span_id:812) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork adir/bdir/bfile v1.2 &&\n' span_id: 813 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/bdir/b3file v1.2 &&\n' span_id:814) (Token id:Id.Lit_Chars val:'\tcheck_end_tree cvswork\n' span_id:815) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cvs up (on b1 /)' span_id:822))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:826) (Token id: Id.Lit_Chars val: '\t( cd cvswork && cvs -f up -d ) >cvs.log 2>&1 &&\n' span_id: 827 ) (Token id:Id.Lit_Chars val:'\tcheck_start_tree cvswork &&\n' span_id:828) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork textfile.c v1.2 &&\n' span_id: 829 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork t3 v1.2 &&\n' span_id:830) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork adir/afile v1.2 &&\n' span_id: 831 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/a3file v1.2 &&\n' span_id:832) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork adir/bdir/bfile v1.2 &&\n' span_id: 833 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/bdir/b3file v1.2 &&\n' span_id:834) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork cdir/cfile v1.2 &&\n' span_id: 835 ) (Token id:Id.Lit_Chars val:'\tcheck_end_tree cvswork\n' span_id:836) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cvs up (on b1 /) (again; check CVS/Tag files)' span_id:846))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:850) (Token id: Id.Lit_Chars val: '\t( cd cvswork && cvs -f up -d ) >cvs.log 2>&1 &&\n' span_id: 851 ) (Token id:Id.Lit_Chars val:'\tcheck_start_tree cvswork &&\n' span_id:852) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork textfile.c v1.2 &&\n' span_id: 853 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork t3 v1.2 &&\n' span_id:854) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork adir/afile v1.2 &&\n' span_id: 855 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/a3file v1.2 &&\n' span_id:856) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork adir/bdir/bfile v1.2 &&\n' span_id: 857 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/bdir/b3file v1.2 &&\n' span_id:858) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork cdir/cfile v1.2 &&\n' span_id: 859 ) (Token id:Id.Lit_Chars val:'\tcheck_end_tree cvswork\n' span_id:860) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cvs up -r v1' span_id:870))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:874) (Token id: Id.Lit_Chars val: '\t( cd cvswork && cvs -f up -r v1 ) >cvs.log 2>&1 &&\n' span_id: 875 ) (Token id:Id.Lit_Chars val:'\tcheck_start_tree cvswork &&\n' span_id:876) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork textfile.c v1 &&\n' span_id:877) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork t2 v1 &&\n' span_id:878) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/afile v1 &&\n' span_id:879) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/a2file v1 &&\n' span_id:880) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork adir/bdir/bfile v1 &&\n' span_id: 881 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/bdir/b2file v1 &&\n' span_id:882) (Token id:Id.Lit_Chars val:'\tcheck_end_tree cvswork\n' span_id:883) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cvs up' span_id:890))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:894) (Token id: Id.Lit_Chars val: '\t( cd cvswork && cvs -f up ) >cvs.log 2>&1 &&\n' span_id: 895 ) (Token id:Id.Lit_Chars val:'\tcheck_start_tree cvswork &&\n' span_id:896) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork textfile.c v1 &&\n' span_id:897) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork t2 v1 &&\n' span_id:898) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/afile v1 &&\n' span_id:899) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/a2file v1 &&\n' span_id:900) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork adir/bdir/bfile v1 &&\n' span_id: 901 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/bdir/b2file v1 &&\n' span_id:902) (Token id:Id.Lit_Chars val:'\tcheck_end_tree cvswork\n' span_id:903) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cvs up (again; check CVS/Tag files)' span_id:910))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:914) (Token id: Id.Lit_Chars val: '\t( cd cvswork && cvs -f up -d ) >cvs.log 2>&1 &&\n' span_id: 915 ) (Token id:Id.Lit_Chars val:'\tcheck_start_tree cvswork &&\n' span_id:916) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork textfile.c v1 &&\n' span_id:917) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork t2 v1 &&\n' span_id:918) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/afile v1 &&\n' span_id:919) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/a2file v1 &&\n' span_id:920) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork adir/bdir/bfile v1 &&\n' span_id: 921 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/bdir/b2file v1 &&\n' span_id:922) (Token id:Id.Lit_Chars val:'\tcheck_end_tree cvswork\n' span_id:923) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup simple b2' span_id:930))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:934) (Token id:Id.Lit_Chars val:'\tgit branch b2 v1 &&\n' span_id:935) (Token id:Id.Lit_Chars val:'\tgit push --tags gitcvs.git b2:b2\n' span_id:936) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cvs co b2 [into cvswork2]' span_id:943))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:947) (Token id: Id.Lit_Chars val: '\tcvs -f co -r b2 -d cvswork2 master >cvs.log 2>&1 &&\n' span_id: 948 ) (Token id:Id.Lit_Chars val:'\tcheck_start_tree cvswork &&\n' span_id:949) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork textfile.c v1 &&\n' span_id:950) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork t2 v1 &&\n' span_id:951) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/afile v1 &&\n' span_id:952) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/a2file v1 &&\n' span_id:953) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork adir/bdir/bfile v1 &&\n' span_id: 954 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/bdir/b2file v1 &&\n' span_id:955) (Token id:Id.Lit_Chars val:'\tcheck_end_tree cvswork\n' span_id:956) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'root dir edit [cvswork2]' span_id:963))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:967) (Token id:Id.Lit_Chars val:'\t(\n' span_id:968) (Token id:Id.Lit_Chars val:'\t\tcd cvswork2 && echo "Line 2" >>textfile.c &&\n' span_id:969) (Token id: Id.Lit_Chars val: '\t\t! cvs -f diff -u >"$WORKDIR/cvsEdit1.diff" &&\n' span_id: 970 ) (Token id:Id.Lit_Chars val:'\t\tcvs -f commit -m "edit textfile.c" textfile.c\n' span_id:971) (Token id:Id.Lit_Chars val:'\t) >cvsEdit1.log 2>&1\n' span_id:972) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'root dir rm file [cvswork2]' span_id:979))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:983) (Token id:Id.Lit_Chars val:'\t(\n' span_id:984) (Token id:Id.Lit_Chars val:'\t\tcd cvswork2 &&\n' span_id:985) (Token id:Id.Lit_Chars val:'\t\tcvs -f rm -f t2 &&\n' span_id:986) (Token id:Id.Lit_Chars val:'\t\tcvs -f diff -u >../cvsEdit2-empty.diff &&\n' span_id:987) (Token id: Id.Lit_Chars val: '\t\t! cvs -f diff -N -u >"$WORKDIR/cvsEdit2-N.diff" &&\n' span_id: 988 ) (Token id:Id.Lit_Chars val:'\t\tcvs -f commit -m "rm t2"\n' span_id:989) (Token id:Id.Lit_Chars val:'\t) >cvsEdit2.log 2>&1\n' span_id:990) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'subdir edit/add/rm files [cvswork2]' span_id:997))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1001) (Token id:Id.Lit_Chars val:'\t(\n' span_id:1002) (Token id:Id.Lit_Chars val:'\t\tcd cvswork2 &&\n' span_id:1003) (Token id: Id.Lit_Chars val: '\t\tsed -e "s/line 1/line 1 (v2)/" adir/bdir/bfile >adir/bdir/bfileNEW &&\n' span_id: 1004 ) (Token id:Id.Lit_Chars val:'\t\tmv -f adir/bdir/bfileNEW adir/bdir/bfile &&\n' span_id:1005) (Token id:Id.Lit_Chars val:'\t\trm adir/bdir/b2file &&\n' span_id:1006) (Token id:Id.Lit_Chars val:'\t\tcd adir &&\n' span_id:1007) (Token id:Id.Lit_Chars val:'\t\tcvs -f rm bdir/b2file &&\n' span_id:1008) (Token id:Id.Lit_Chars val:'\t\techo "4th file" >bdir/b4file &&\n' span_id:1009) (Token id:Id.Lit_Chars val:'\t\tcvs -f add bdir/b4file &&\n' span_id:1010) (Token id:Id.Lit_Chars val:'\t\t! cvs -f diff -N -u >"$WORKDIR/cvsEdit3.diff" &&\n' span_id:1011) (Token id:Id.Lit_Chars val:'\t\tgit fetch gitcvs.git b2:b2 &&\n' span_id:1012) (Token id:Id.Lit_Chars val:'\t\t(\n' span_id:1013) (Token id:Id.Lit_Chars val:'\t\t cd .. &&\n' span_id:1014) (Token id: Id.Lit_Chars val: '\t\t ! cvs -f diff -u -N -r v1.2 >"$WORKDIR/cvsEdit3-v1.2.diff" &&\n' span_id: 1015 ) (Token id: Id.Lit_Chars val: '\t\t ! cvs -f diff -u -N -r v1.2 -r v1 >"$WORKDIR/cvsEdit3-v1.2-v1.diff"\n' span_id: 1016 ) (Token id:Id.Lit_Chars val:'\t\t) &&\n' span_id:1017) (Token id: Id.Lit_Chars val: '\t\tcvs -f commit -m "various add/rm/edit"\n' span_id: 1018 ) (Token id:Id.Lit_Chars val:'\t) >cvs.log 2>&1\n' span_id:1019) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'validate result of edits [cvswork2]' span_id:1026))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1030) (Token id:Id.Lit_Chars val:'\tgit fetch gitcvs.git b2:b2 &&\n' span_id:1031) (Token id:Id.Lit_Chars val:'\tgit tag v2 b2 &&\n' span_id:1032) (Token id: Id.Lit_Chars val: '\tgit push --tags gitcvs.git b2:b2 &&\n' span_id: 1033 ) (Token id:Id.Lit_Chars val:'\tcheck_start_tree cvswork2 &&\n' span_id:1034) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork2 textfile.c v2 &&\n' span_id: 1035 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork2 adir/afile v2 &&\n' span_id:1036) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork2 adir/a2file v2 &&\n' span_id: 1037 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork2 adir/bdir/bfile v2 &&\n' span_id:1038) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork2 adir/bdir/b4file v2 &&\n' span_id: 1039 ) (Token id:Id.Lit_Chars val:'\tcheck_end_full_tree cvswork2 v2\n' span_id:1040) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'validate basic diffs saved during above cvswork2 edits' span_id: 1047 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1051) (Token id: Id.Lit_Chars val: '\ttest $(grep Index: cvsEdit1.diff | wc -l) = 1 &&\n' span_id: 1052 ) (Token id:Id.Lit_Chars val:'\ttest_must_be_empty cvsEdit2-empty.diff &&\n' span_id:1053) (Token id: Id.Lit_Chars val: '\ttest $(grep Index: cvsEdit2-N.diff | wc -l) = 1 &&\n' span_id: 1054 ) (Token id:Id.Lit_Chars val:'\ttest $(grep Index: cvsEdit3.diff | wc -l) = 3 &&\n' span_id:1055) (Token id:Id.Lit_Chars val:'\trm -rf diffSandbox &&\n' span_id:1056) (Token id:Id.Lit_Chars val:'\tgit clone -q -n . diffSandbox &&\n' span_id:1057) (Token id:Id.Lit_Chars val:'\t(\n' span_id:1058) (Token id:Id.Lit_Chars val:'\t\tcd diffSandbox &&\n' span_id:1059) (Token id:Id.Lit_Chars val:'\t\tgit checkout v1 &&\n' span_id:1060) (Token id:Id.Lit_Chars val:'\t\tgit apply -p0 --index <"$WORKDIR/cvsEdit1.diff" &&\n' span_id:1061) (Token id: Id.Lit_Chars val: '\t\tgit apply -p0 --index <"$WORKDIR/cvsEdit2-N.diff" &&\n' span_id: 1062 ) (Token id: Id.Lit_Chars val: '\t\tgit apply -p0 --directory=adir --index <"$WORKDIR/cvsEdit3.diff" &&\n' span_id: 1063 ) (Token id:Id.Lit_Chars val:'\t\tgit diff --exit-code v2\n' span_id:1064) (Token id:Id.Lit_Chars val:'\t) >"check_diff_apply.out" 2>&1\n' span_id:1065) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'validate v1.2 diff saved during last cvswork2 edit' span_id: 1072 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1076) (Token id: Id.Lit_Chars val: '\ttest $(grep Index: cvsEdit3-v1.2.diff | wc -l) = 9 &&\n' span_id: 1077 ) (Token id:Id.Lit_Chars val:'\tcheck_diff cvsEdit3-v1.2.diff v1.2 v2\n' span_id:1078) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'validate v1.2 v1 diff saved during last cvswork2 edit' span_id: 1085 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1089) (Token id: Id.Lit_Chars val: '\ttest $(grep Index: cvsEdit3-v1.2-v1.diff | wc -l) = 9 &&\n' span_id: 1090 ) (Token id:Id.Lit_Chars val:'\tcheck_diff cvsEdit3-v1.2-v1.diff v1.2 v1\n' span_id:1091) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cvs up [cvswork2]' span_id:1098))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1102) (Token id: Id.Lit_Chars val: '\t( cd cvswork2 && cvs -f up ) >cvs.log 2>&1 &&\n' span_id: 1103 ) (Token id:Id.Lit_Chars val:'\tcheck_start_tree cvswork2 &&\n' span_id:1104) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork2 textfile.c v2 &&\n' span_id: 1105 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork2 adir/afile v2 &&\n' span_id:1106) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork2 adir/a2file v2 &&\n' span_id: 1107 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork2 adir/bdir/bfile v2 &&\n' span_id:1108) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork2 adir/bdir/b4file v2 &&\n' span_id: 1109 ) (Token id:Id.Lit_Chars val:'\tcheck_end_full_tree cvswork2 v2\n' span_id:1110) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cvs up -r b2 [back to cvswork]' span_id:1117))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1121) (Token id: Id.Lit_Chars val: '\t( cd cvswork && cvs -f up -r b2 ) >cvs.log 2>&1 &&\n' span_id: 1122 ) (Token id:Id.Lit_Chars val:'\tcheck_start_tree cvswork &&\n' span_id:1123) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork textfile.c v2 &&\n' span_id: 1124 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/afile v2 &&\n' span_id:1125) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork adir/a2file v2 &&\n' span_id: 1126 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/bdir/bfile v2 &&\n' span_id:1127) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork adir/bdir/b4file v2 &&\n' span_id: 1128 ) (Token id:Id.Lit_Chars val:'\tcheck_end_full_tree cvswork v2\n' span_id:1129) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cvs up -r b1' span_id:1136))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1140) (Token id: Id.Lit_Chars val: '\t( cd cvswork && cvs -f up -r b1 ) >cvs.log 2>&1 &&\n' span_id: 1141 ) (Token id:Id.Lit_Chars val:'\tcheck_start_tree cvswork &&\n' span_id:1142) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork textfile.c v1.2 &&\n' span_id: 1143 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork t3 v1.2 &&\n' span_id:1144) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork adir/afile v1.2 &&\n' span_id: 1145 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/a3file v1.2 &&\n' span_id:1146) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork adir/bdir/bfile v1.2 &&\n' span_id: 1147 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/bdir/b3file v1.2 &&\n' span_id:1148) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork cdir/cfile v1.2 &&\n' span_id: 1149 ) (Token id:Id.Lit_Chars val:'\tcheck_end_full_tree cvswork v1.2\n' span_id:1150) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cvs up -A' span_id:1157))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1161) (Token id: Id.Lit_Chars val: '\t( cd cvswork && cvs -f up -A ) >cvs.log 2>&1 &&\n' span_id: 1162 ) (Token id:Id.Lit_Chars val:'\tcheck_start_tree cvswork &&\n' span_id:1163) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork textfile.c v1 &&\n' span_id: 1164 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork t2 v1 &&\n' span_id:1165) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork adir/afile v1 &&\n' span_id: 1166 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/a2file v1 &&\n' span_id:1167) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork adir/bdir/bfile v1 &&\n' span_id: 1168 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/bdir/b2file v1 &&\n' span_id:1169) (Token id:Id.Lit_Chars val:'\tcheck_end_full_tree cvswork v1\n' span_id:1170) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cvs up (check CVS/Tag files)' span_id:1177))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1181) (Token id: Id.Lit_Chars val: '\t( cd cvswork && cvs -f up ) >cvs.log 2>&1 &&\n' span_id: 1182 ) (Token id:Id.Lit_Chars val:'\tcheck_start_tree cvswork &&\n' span_id:1183) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork textfile.c v1 &&\n' span_id: 1184 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork t2 v1 &&\n' span_id:1185) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork adir/afile v1 &&\n' span_id: 1186 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/a2file v1 &&\n' span_id:1187) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork adir/bdir/bfile v1 &&\n' span_id: 1188 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/bdir/b2file v1 &&\n' span_id:1189) (Token id:Id.Lit_Chars val:'\tcheck_end_full_tree cvswork v1\n' span_id:1190) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cvs up -r heads/b1' span_id:1200))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1204) (Token id: Id.Lit_Chars val: '\t( cd cvswork && cvs -f up -r heads/b1 ) >cvs.log 2>&1 &&\n' span_id: 1205 ) (Token id:Id.Lit_Chars val:'\tcheck_start_tree cvswork &&\n' span_id:1206) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork textfile.c v1.2 &&\n' span_id: 1207 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork t3 v1.2 &&\n' span_id:1208) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork adir/afile v1.2 &&\n' span_id: 1209 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/a3file v1.2 &&\n' span_id:1210) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork adir/bdir/bfile v1.2 &&\n' span_id: 1211 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/bdir/b3file v1.2 &&\n' span_id:1212) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork cdir/cfile v1.2 &&\n' span_id: 1213 ) (Token id:Id.Lit_Chars val:'\tcheck_end_full_tree cvswork v1.2\n' span_id:1214) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'cvs up -r heads_-s-b2 (cvsserver escape mechanism)' span_id: 1224 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1228) (Token id: Id.Lit_Chars val: '\t( cd cvswork && cvs -f up -r heads_-s-b2 ) >cvs.log 2>&1 &&\n' span_id: 1229 ) (Token id:Id.Lit_Chars val:'\tcheck_start_tree cvswork &&\n' span_id:1230) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork textfile.c v2 &&\n' span_id: 1231 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/afile v2 &&\n' span_id:1232) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork adir/a2file v2 &&\n' span_id: 1233 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/bdir/bfile v2 &&\n' span_id:1234) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork adir/bdir/b4file v2 &&\n' span_id: 1235 ) (Token id:Id.Lit_Chars val:'\tcheck_end_full_tree cvswork v2\n' span_id:1236) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:v1hash) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1241) command_list: (command.CommandList children:[(C {(git)} {(rev-parse)} {(v1)})]) ) } spids: [1240] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cvs up -r $(git rev-parse v1)' span_id:1252))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1256) (Token id:Id.Lit_Chars val:'\ttest -n "$v1hash" &&\n' span_id:1257) (Token id: Id.Lit_Chars val: '\t( cd cvswork && cvs -f up -r "$v1hash" ) >cvs.log 2>&1 &&\n' span_id: 1258 ) (Token id:Id.Lit_Chars val:'\tcheck_start_tree cvswork &&\n' span_id:1259) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork textfile.c v1 &&\n' span_id: 1260 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork t2 v1 &&\n' span_id:1261) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork adir/afile v1 &&\n' span_id: 1262 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/a2file v1 &&\n' span_id:1263) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork adir/bdir/bfile v1 &&\n' span_id: 1264 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork adir/bdir/b2file v1 &&\n' span_id:1265) (Token id:Id.Lit_Chars val:'\tcheck_end_full_tree cvswork v1\n' span_id:1266) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cvs diff -r v1 -u' span_id:1273))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1277) (Token id: Id.Lit_Chars val: '\t( cd cvswork && cvs -f diff -r v1 -u ) >cvsDiff.out 2>cvs.log &&\n' span_id: 1278 ) (Token id:Id.Lit_Chars val:'\ttest_must_be_empty cvsDiff.out &&\n' span_id:1279) (Token id:Id.Lit_Chars val:'\ttest_must_be_empty cvs.log\n' span_id:1280) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cvs diff -N -r v2 -u' span_id:1287))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1291) (Token id: Id.Lit_Chars val: '\t( cd cvswork && ! cvs -f diff -N -r v2 -u ) >cvsDiff.out 2>cvs.log &&\n' span_id: 1292 ) (Token id:Id.Lit_Chars val:'\ttest_must_be_empty cvs.log &&\n' span_id:1293) (Token id:Id.Lit_Chars val:'\ttest -s cvsDiff.out &&\n' span_id:1294) (Token id:Id.Lit_Chars val:'\tcheck_diff cvsDiff.out v2 v1 >check_diff.out 2>&1\n' span_id:1295) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cvs diff -N -r v2 -r v1.2' span_id:1302))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1306) (Token id: Id.Lit_Chars val: '\t( cd cvswork && ! cvs -f diff -N -r v2 -r v1.2 -u ) >cvsDiff.out 2>cvs.log &&\n' span_id: 1307 ) (Token id:Id.Lit_Chars val:'\ttest_must_be_empty cvs.log &&\n' span_id:1308) (Token id:Id.Lit_Chars val:'\ttest -s cvsDiff.out &&\n' span_id:1309) (Token id:Id.Lit_Chars val:'\tcheck_diff cvsDiff.out v2 v1.2 >check_diff.out 2>&1\n' span_id:1310) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'apply early [cvswork3] diff to b3' span_id:1317))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1321) (Token id:Id.Lit_Chars val:'\tgit clone -q . gitwork3 &&\n' span_id:1322) (Token id:Id.Lit_Chars val:'\t(\n' span_id:1323) (Token id:Id.Lit_Chars val:'\t\tcd gitwork3 &&\n' span_id:1324) (Token id:Id.Lit_Chars val:'\t\tgit checkout -b b3 v1 &&\n' span_id:1325) (Token id: Id.Lit_Chars val: '\t\tgit apply -p0 --index <"$WORKDIR/cvswork3edit.diff" &&\n' span_id: 1326 ) (Token id:Id.Lit_Chars val:'\t\tgit commit -m "cvswork3 edits applied"\n' span_id:1327) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:1328) (Token id:Id.Lit_Chars val:'\tgit fetch gitwork3 b3:b3 &&\n' span_id:1329) (Token id:Id.Lit_Chars val:'\tgit tag v3 b3\n' span_id:1330) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'check [cvswork3] diff' span_id:1337))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1341) (Token id: Id.Lit_Chars val: '\t( cd cvswork3 && ! cvs -f diff -N -u ) >"$WORKDIR/cvsDiff.out" 2>cvs.log &&\n' span_id: 1342 ) (Token id:Id.Lit_Chars val:'\ttest_must_be_empty cvs.log &&\n' span_id:1343) (Token id:Id.Lit_Chars val:'\ttest -s cvsDiff.out &&\n' span_id:1344) (Token id:Id.Lit_Chars val:'\ttest $(grep Index: cvsDiff.out | wc -l) = 3 &&\n' span_id:1345) (Token id: Id.Lit_Chars val: '\ttest_cmp cvsDiff.out cvswork3edit.diff &&\n' span_id: 1346 ) (Token id:Id.Lit_Chars val:'\tcheck_diff cvsDiff.out v1 v3 >check_diff.out 2>&1\n' span_id:1347) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'merge early [cvswork3] b3 with b1' span_id:1354))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1358) (Token id: Id.Lit_Chars val: '\t( cd gitwork3 && git merge -m "message" b1 ) &&\n' span_id: 1359 ) (Token id:Id.Lit_Chars val:'\tgit fetch gitwork3 b3:b3 &&\n' span_id:1360) (Token id:Id.Lit_Chars val:'\tgit tag v3merged b3 &&\n' span_id:1361) (Token id:Id.Lit_Chars val:'\tgit push --tags gitcvs.git b3:b3\n' span_id:1362) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cvs up dirty [cvswork3]' span_id:1381))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1385) (Token id:Id.Lit_Chars val:'\t(\n' span_id:1386) (Token id:Id.Lit_Chars val:'\t\tcd cvswork3 &&\n' span_id:1387) (Token id:Id.Lit_Chars val:'\t\tcvs -f up &&\n' span_id:1388) (Token id:Id.Lit_Chars val:'\t\t! cvs -f diff -N -u >"$WORKDIR/cvsDiff.out"\n' span_id:1389) (Token id:Id.Lit_Chars val:'\t) >cvs.log 2>&1 &&\n' span_id:1390) (Token id:Id.Lit_Chars val:'\ttest -s cvsDiff.out &&\n' span_id:1391) (Token id: Id.Lit_Chars val: '\ttest $(grep Index: cvsDiff.out | wc -l) = 2 &&\n' span_id: 1392 ) (Token id:Id.Lit_Chars val:'\tcheck_start_tree cvswork3 &&\n' span_id:1393) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork3 textfile.c v3merged &&\n' span_id: 1394 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork3 t3 v3merged &&\n' span_id:1395) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork3 adir/afile v3merged &&\n' span_id: 1396 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork3 adir/a3file v3merged &&\n' span_id:1397) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork3 adir/afile5 v3merged &&\n' span_id: 1398 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork3 adir/bdir/bfile v3merged &&\n' span_id:1399) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork3 adir/bdir/b3file v3merged &&\n' span_id: 1400 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork3 cdir/cfile v3merged &&\n' span_id:1401) (Token id: Id.Lit_Chars val: '\tcheck_end_full_tree cvswork3 v3merged\n' span_id: 1402 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cvs commit [cvswork3]' span_id:1413))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1417) (Token id:Id.Lit_Chars val:'\t(\n' span_id:1418) (Token id:Id.Lit_Chars val:'\t\tcd cvswork3 &&\n' span_id:1419) (Token id: Id.Lit_Chars val: '\t\tcvs -f commit -m "dirty sandbox after auto-merge"\n' span_id: 1420 ) (Token id:Id.Lit_Chars val:'\t) >cvs.log 2>&1 &&\n' span_id:1421) (Token id:Id.Lit_Chars val:'\tcheck_start_tree cvswork3 &&\n' span_id:1422) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork3 textfile.c v3merged &&\n' span_id:1423) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork3 t3 v3merged &&\n' span_id:1424) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork3 adir/afile v3merged &&\n' span_id:1425) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork3 adir/a3file v3merged &&\n' span_id: 1426 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork3 adir/afile5 v3merged &&\n' span_id:1427) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork3 adir/bdir/bfile v3merged &&\n' span_id: 1428 ) (Token id:Id.Lit_Chars val:'\tcheck_file cvswork3 adir/bdir/b3file v3merged &&\n' span_id:1429) (Token id: Id.Lit_Chars val: '\tcheck_file cvswork3 cdir/cfile v3merged &&\n' span_id: 1430 ) (Token id:Id.Lit_Chars val:'\tcheck_end_full_tree cvswork3 v3merged &&\n' span_id:1431) (Token id:Id.Lit_Chars val:'\tgit fetch gitcvs.git b3:b4 &&\n' span_id:1432) (Token id:Id.Lit_Chars val:'\tgit tag v4.1 b4 &&\n' span_id:1433) (Token id: Id.Lit_Chars val: '\tgit diff --exit-code v4.1 v3merged >check_diff_apply.out 2>&1\n' span_id: 1434 ) ) } ) (C {(test_done)}) ] )