(List (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('test_description', {[SQ <LIT_CHARS "git-cvsserver -kb modes\n"> <LIT_CHARS "\n"> <LIT_CHARS "tests -kb mode for binary files when accessing a git\n"> <LIT_CHARS "repository using cvs CLI client via git-cvsserver server">]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS ./test-lib.sh]} ) (FunctionDef marked_as [] (List (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('foundEntry', {[DQ [ComSub (Com {[LIT_CHARS grep]} {[DQ [LIT_CHARS "^/"][VarSub 2][LIT_CHARS /]]} {[DQ [VarSub 1][LIT_CHARS /CVS/Entries]]})]]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS x] [DQ [VarSub foundEntry]]} {[LIT_DBRACKET_LIKE "="]} {[LIT_CHARS x] [DQ ]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "NOT FOUND: "][VarSub 1][LIT_CHARS " "][VarSub 2][LIT_CHARS " 1 "][VarSub 3]]} < (FilenameRedirectNode filename={[DQ [VarSub WORKDIR][LIT_CHARS /marked.log]]} <REDIR_DGREAT ">>"> 1), > ) (Com {[LIT_CHARS return]} {[LIT_CHARS 1]} ) ) ) (Com {[LIT_CHARS test]} {[LIT_CHARS x] [DQ [ComSub (Pipeline (Com {[LIT_CHARS grep]} {[DQ [LIT_CHARS "^/"][VarSub 2][LIT_CHARS /]]} {[DQ [VarSub 1][LIT_CHARS /CVS/Entries]]}) (Com {[LIT_CHARS cut]} {[LIT_CHARS -d/]} {[LIT_CHARS -f5]}) )]]} {[LIT_DBRACKET_LIKE "="]} {[LIT_CHARS x] [DQ [VarSub 3]]} ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('stat', {[VarSub ?]})]) (Com {[LIT_CHARS echo]} {[DQ [VarSub 1][LIT_CHARS " "][VarSub 2][LIT_CHARS " "][VarSub stat][LIT_CHARS " '"][VarSub 3][LIT_CHARS "'"]]} < (FilenameRedirectNode filename={[DQ [VarSub WORKDIR][LIT_CHARS /marked.log]]} <REDIR_DGREAT ">>"> 1), > ) (Com {[LIT_CHARS return]} {[VarSub stat]} ) ) ) (FunctionDef not_present [] (List (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('foundEntry', {[DQ [ComSub (Com {[LIT_CHARS grep]} {[DQ [LIT_CHARS "^/"][VarSub 2][LIT_CHARS /]]} {[DQ [VarSub 1][LIT_CHARS /CVS/Entries]]})]]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -r]} {[DQ [VarSub 1][LIT_CHARS /][VarSub 2]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Error: File still exists: "][VarSub 1][LIT_CHARS " "][VarSub 2]]} < (FilenameRedirectNode filename={[DQ [VarSub WORKDIR][LIT_CHARS /marked.log]]} <REDIR_DGREAT ">>"> 1), > ) (Com {[LIT_CHARS return]} {[LIT_CHARS 1]} ) ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS x] [DQ [VarSub foundEntry]]} {[LIT_NEQUAL "!="]} {[LIT_CHARS x] [DQ ]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Error: should not have found: "][VarSub 1][LIT_CHARS " "][VarSub 2]]} < (FilenameRedirectNode filename={[DQ [VarSub WORKDIR][LIT_CHARS /marked.log]]} <REDIR_DGREAT ">>"> 1), > ) (Com {[LIT_CHARS return]} {[LIT_CHARS 1]} ) ) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Correctly not found: "][VarSub 1][LIT_CHARS " "][VarSub 2]]} < (FilenameRedirectNode filename={[DQ [VarSub WORKDIR][LIT_CHARS /marked.log]]} <REDIR_DGREAT ">>"> 1), > ) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]} ) ) ) ) ) (Com {[LIT_CHARS cvs]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} <REDIR_GREAT ">"> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} <REDIR_GREATAND "2>&"> 2), > ) (If (Com {[LIT_CHARS test]} {[VarSub ?]} {[LIT_CHARS -ne]} {[LIT_CHARS 1]} ) (List (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('skip_all', {[SQ <LIT_CHARS "skipping git-cvsserver tests, cvs not found">]})]) (Com {[LIT_CHARS test_done]} ) ) ) (If (Pipeline! (Com {[LIT_CHARS test_have_prereq]} {[LIT_CHARS PERL]} ) ) (List (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('skip_all', {[SQ <LIT_CHARS "skipping git-cvsserver tests, perl not available">]})]) (Com {[LIT_CHARS test_done]} ) ) ) (AndOr OP_OR_IF (Com {[DQ [VarSub PERL_PATH]]} {[LIT_CHARS -e]} {[SQ <LIT_CHARS "use DBI; use DBD::SQLite">]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} <REDIR_GREAT ">"> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} <REDIR_GREATAND "2>&"> 2), > ) (List (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('skip_all', {[SQ <LIT_CHARS "skipping git-cvsserver tests, Perl SQLite interface unavailable">]})]) (Com {[LIT_CHARS test_done]} ) ) ) (Com {[LIT_CHARS unset]} {[LIT_CHARS GIT_DIR]} {[LIT_CHARS GIT_CONFIG]} ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('WORKDIR', {[ComSub (Com {[LIT_CHARS pwd]})]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('SERVERDIR', {[ComSub (Com {[LIT_CHARS pwd]})] [LIT_CHARS /gitcvs.git]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('git_config', {[DQ [VarSub SERVERDIR][LIT_CHARS /config]]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('CVSROOT', {[DQ [LIT_CHARS ":fork:"][VarSub SERVERDIR]]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('CVSWORK', {[DQ [ComSub (Com {[LIT_CHARS pwd]})][LIT_CHARS /cvswork]]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('CVS_SERVER', {[LIT_CHARS git-cvsserver]})]) (= scope=<EAssignScope.GLOBAL 1> flags=1 words=[{[LIT_CHARS CVSROOT]}, {[LIT_CHARS CVS_SERVER]}] bindings=[]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub CVSWORK]]} {[DQ [VarSub SERVERDIR]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ <LIT_CHARS setup>]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS " echo \"Simple text file\" >textfile.c &&\n"> <LIT_CHARS " echo \"File with embedded NUL: Q <- there\" | q_to_nul > binfile.bin &&\n"> <LIT_CHARS " mkdir subdir &&\n"> <LIT_CHARS " echo \"Another text file\" > subdir/file.h &&\n"> <LIT_CHARS " echo \"Another binary: Q (this time CR)\" | q_to_cr > subdir/withCr.bin &&\n"> <LIT_CHARS " echo \"Mixed up NUL, but marked text: Q <- there\" | q_to_nul > mixedUp.c &&\n"> <LIT_CHARS " echo \"Unspecified\" > subdir/unspecified.other &&\n"> <LIT_CHARS " echo \"/*.bin -crlf\" > .gitattributes &&\n"> <LIT_CHARS " echo \"/*.c crlf\" >> .gitattributes &&\n"> <LIT_CHARS " echo \"subdir/*.bin -crlf\" >> .gitattributes &&\n"> <LIT_CHARS " echo \"subdir/*.c crlf\" >> .gitattributes &&\n"> <LIT_CHARS " echo \"subdir/file.h crlf\" >> .gitattributes &&\n"> <LIT_CHARS " git add .gitattributes textfile.c binfile.bin mixedUp.c subdir/* &&\n"> <LIT_CHARS " git commit -q -m \"First Commit\" &&\n"> <LIT_CHARS " git clone -q --bare \"$WORKDIR/.git\" \"$SERVERDIR\" >/dev/null 2>&1 &&\n"> <LIT_CHARS " GIT_DIR=\"$SERVERDIR\" git config --bool gitcvs.enabled true &&\n"> <LIT_CHARS " GIT_DIR=\"$SERVERDIR\" git config gitcvs.logfile \"$SERVERDIR/gitcvs.log\"\n">]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ <LIT_CHARS "cvs co (default crlf)">]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS " GIT_CONFIG=\"$git_config\" cvs -Q co -d cvswork master >cvs.log 2>&1 &&\n"> <LIT_CHARS " test x\"$(grep ">] [LIT_CHARS /-k] [SQ <LIT_CHARS " cvswork/CVS/Entries cvswork/subdir/CVS/Entries)\" = x\"\"\n">]} ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[LIT_CHARS cvswork]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ <LIT_CHARS "cvs co (allbinary)">]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS " GIT_DIR=\"$SERVERDIR\" git config --bool gitcvs.allbinary true &&\n"> <LIT_CHARS " GIT_CONFIG=\"$git_config\" cvs -Q co -d cvswork master >cvs.log 2>&1 &&\n"> <LIT_CHARS " marked_as cvswork textfile.c -kb &&\n"> <LIT_CHARS " marked_as cvswork binfile.bin -kb &&\n"> <LIT_CHARS " marked_as cvswork .gitattributes -kb &&\n"> <LIT_CHARS " marked_as cvswork mixedUp.c -kb &&\n"> <LIT_CHARS " marked_as cvswork/subdir withCr.bin -kb &&\n"> <LIT_CHARS " marked_as cvswork/subdir file.h -kb &&\n"> <LIT_CHARS " marked_as cvswork/subdir unspecified.other -kb\n">]} ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[LIT_CHARS cvswork]} {[LIT_CHARS cvs.log]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ <LIT_CHARS "cvs co (use attributes/allbinary)">]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS " GIT_DIR=\"$SERVERDIR\" git config --bool gitcvs.usecrlfattr true &&\n"> <LIT_CHARS " GIT_CONFIG=\"$git_config\" cvs -Q co -d cvswork master >cvs.log 2>&1 &&\n"> <LIT_CHARS " marked_as cvswork textfile.c \"\" &&\n"> <LIT_CHARS " marked_as cvswork binfile.bin -kb &&\n"> <LIT_CHARS " marked_as cvswork .gitattributes -kb &&\n"> <LIT_CHARS " marked_as cvswork mixedUp.c \"\" &&\n"> <LIT_CHARS " marked_as cvswork/subdir withCr.bin -kb &&\n"> <LIT_CHARS " marked_as cvswork/subdir file.h \"\" &&\n"> <LIT_CHARS " marked_as cvswork/subdir unspecified.other -kb\n">]} ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[LIT_CHARS cvswork]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ <LIT_CHARS "cvs co (use attributes)">]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS " GIT_DIR=\"$SERVERDIR\" git config --bool gitcvs.allbinary false &&\n"> <LIT_CHARS " GIT_CONFIG=\"$git_config\" cvs -Q co -d cvswork master >cvs.log 2>&1 &&\n"> <LIT_CHARS " marked_as cvswork textfile.c \"\" &&\n"> <LIT_CHARS " marked_as cvswork binfile.bin -kb &&\n"> <LIT_CHARS " marked_as cvswork .gitattributes \"\" &&\n"> <LIT_CHARS " marked_as cvswork mixedUp.c \"\" &&\n"> <LIT_CHARS " marked_as cvswork/subdir withCr.bin -kb &&\n"> <LIT_CHARS " marked_as cvswork/subdir file.h \"\" &&\n"> <LIT_CHARS " marked_as cvswork/subdir unspecified.other \"\"\n">]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ <LIT_CHARS "adding files">]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS " (cd cvswork &&\n"> <LIT_CHARS " (cd subdir &&\n"> <LIT_CHARS " echo \"more text\" > src.c &&\n"> <LIT_CHARS " GIT_CONFIG=\"$git_config\" cvs -Q add src.c >cvs.log 2>&1 &&\n"> <LIT_CHARS " marked_as . src.c \"\" &&\n"> <LIT_CHARS " echo \"psuedo-binary\" > temp.bin\n"> <LIT_CHARS " ) &&\n"> <LIT_CHARS " GIT_CONFIG=\"$git_config\" cvs -Q add subdir/temp.bin >cvs.log 2>&1 &&\n"> <LIT_CHARS " marked_as subdir temp.bin \"-kb\" &&\n"> <LIT_CHARS " cd subdir &&\n"> <LIT_CHARS " GIT_CONFIG=\"$git_config\" cvs -Q ci -m \"adding files\" >cvs.log 2>&1 &&\n"> <LIT_CHARS " marked_as . temp.bin \"-kb\" &&\n"> <LIT_CHARS " marked_as . src.c \"\"\n"> <LIT_CHARS " )\n">]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ <LIT_CHARS updating>]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS " git pull gitcvs.git &&\n"> <LIT_CHARS " echo ">] [LIT_CHARS hi] [SQ <LIT_CHARS " > subdir/newfile.bin &&\n"> <LIT_CHARS " echo ">] [LIT_CHARS junk] [SQ <LIT_CHARS " > subdir/file.h &&\n"> <LIT_CHARS " echo ">] [LIT_CHARS hi] [SQ <LIT_CHARS " > subdir/newfile.c &&\n"> <LIT_CHARS " echo ">] [LIT_CHARS hello] [SQ <LIT_CHARS " >> binfile.bin &&\n"> <LIT_CHARS " git add subdir/newfile.bin subdir/file.h subdir/newfile.c binfile.bin &&\n"> <LIT_CHARS " git commit -q -m \"Add and change some files\" &&\n"> <LIT_CHARS " git push gitcvs.git >/dev/null &&\n"> <LIT_CHARS " (cd cvswork &&\n"> <LIT_CHARS " GIT_CONFIG=\"$git_config\" cvs -Q update\n"> <LIT_CHARS " ) &&\n"> <LIT_CHARS " marked_as cvswork textfile.c \"\" &&\n"> <LIT_CHARS " marked_as cvswork binfile.bin -kb &&\n"> <LIT_CHARS " marked_as cvswork .gitattributes \"\" &&\n"> <LIT_CHARS " marked_as cvswork mixedUp.c \"\" &&\n"> <LIT_CHARS " marked_as cvswork/subdir withCr.bin -kb &&\n"> <LIT_CHARS " marked_as cvswork/subdir file.h \"\" &&\n"> <LIT_CHARS " marked_as cvswork/subdir unspecified.other \"\" &&\n"> <LIT_CHARS " marked_as cvswork/subdir newfile.bin -kb &&\n"> <LIT_CHARS " marked_as cvswork/subdir newfile.c \"\" &&\n"> <LIT_CHARS " echo \"File with embedded NUL: Q <- there\" | q_to_nul > tmpExpect1 &&\n"> <LIT_CHARS " echo \"hello\" >> tmpExpect1 &&\n"> <LIT_CHARS " cmp cvswork/binfile.bin tmpExpect1\n">]} ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[LIT_CHARS cvswork]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ <LIT_CHARS "cvs co (use attributes/guess)">]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS " GIT_DIR=\"$SERVERDIR\" git config gitcvs.allbinary guess &&\n"> <LIT_CHARS " GIT_CONFIG=\"$git_config\" cvs -Q co -d cvswork master >cvs.log 2>&1 &&\n"> <LIT_CHARS " marked_as cvswork textfile.c \"\" &&\n"> <LIT_CHARS " marked_as cvswork binfile.bin -kb &&\n"> <LIT_CHARS " marked_as cvswork .gitattributes \"\" &&\n"> <LIT_CHARS " marked_as cvswork mixedUp.c \"\" &&\n"> <LIT_CHARS " marked_as cvswork/subdir withCr.bin -kb &&\n"> <LIT_CHARS " marked_as cvswork/subdir file.h \"\" &&\n"> <LIT_CHARS " marked_as cvswork/subdir unspecified.other \"\" &&\n"> <LIT_CHARS " marked_as cvswork/subdir newfile.bin -kb &&\n"> <LIT_CHARS " marked_as cvswork/subdir newfile.c \"\"\n">]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ <LIT_CHARS "setup multi-line files">]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS " ( echo \"line 1\" &&\n"> <LIT_CHARS " echo \"line 2\" &&\n"> <LIT_CHARS " echo \"line 3\" &&\n"> <LIT_CHARS " echo \"line 4 with NUL: Q <-\" ) | q_to_nul > multiline.c &&\n"> <LIT_CHARS " git add multiline.c &&\n"> <LIT_CHARS " ( echo \"line 1\" &&\n"> <LIT_CHARS " echo \"line 2\" &&\n"> <LIT_CHARS " echo \"line 3\" &&\n"> <LIT_CHARS " echo \"line 4\" ) | q_to_nul > multilineTxt.c &&\n"> <LIT_CHARS " git add multilineTxt.c &&\n"> <LIT_CHARS " git commit -q -m \"multiline files\" &&\n"> <LIT_CHARS " git push gitcvs.git >/dev/null\n">]} ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[LIT_CHARS cvswork]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ <LIT_CHARS "cvs co (guess)">]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS " GIT_DIR=\"$SERVERDIR\" git config --bool gitcvs.usecrlfattr false &&\n"> <LIT_CHARS " GIT_CONFIG=\"$git_config\" cvs -Q co -d cvswork master >cvs.log 2>&1 &&\n"> <LIT_CHARS " marked_as cvswork textfile.c \"\" &&\n"> <LIT_CHARS " marked_as cvswork binfile.bin -kb &&\n"> <LIT_CHARS " marked_as cvswork .gitattributes \"\" &&\n"> <LIT_CHARS " marked_as cvswork mixedUp.c -kb &&\n"> <LIT_CHARS " marked_as cvswork multiline.c -kb &&\n"> <LIT_CHARS " marked_as cvswork multilineTxt.c \"\" &&\n"> <LIT_CHARS " marked_as cvswork/subdir withCr.bin -kb &&\n"> <LIT_CHARS " marked_as cvswork/subdir file.h \"\" &&\n"> <LIT_CHARS " marked_as cvswork/subdir unspecified.other \"\" &&\n"> <LIT_CHARS " marked_as cvswork/subdir newfile.bin \"\" &&\n"> <LIT_CHARS " marked_as cvswork/subdir newfile.c \"\"\n">]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ <LIT_CHARS "cvs co another copy (guess)">]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS " GIT_CONFIG=\"$git_config\" cvs -Q co -d cvswork2 master >cvs.log 2>&1 &&\n"> <LIT_CHARS " marked_as cvswork2 textfile.c \"\" &&\n"> <LIT_CHARS " marked_as cvswork2 binfile.bin -kb &&\n"> <LIT_CHARS " marked_as cvswork2 .gitattributes \"\" &&\n"> <LIT_CHARS " marked_as cvswork2 mixedUp.c -kb &&\n"> <LIT_CHARS " marked_as cvswork2 multiline.c -kb &&\n"> <LIT_CHARS " marked_as cvswork2 multilineTxt.c \"\" &&\n"> <LIT_CHARS " marked_as cvswork2/subdir withCr.bin -kb &&\n"> <LIT_CHARS " marked_as cvswork2/subdir file.h \"\" &&\n"> <LIT_CHARS " marked_as cvswork2/subdir unspecified.other \"\" &&\n"> <LIT_CHARS " marked_as cvswork2/subdir newfile.bin \"\" &&\n"> <LIT_CHARS " marked_as cvswork2/subdir newfile.c \"\"\n">]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ <LIT_CHARS "add text (guess)">]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS " (cd cvswork &&\n"> <LIT_CHARS " echo \"simpleText\" > simpleText.c &&\n"> <LIT_CHARS " GIT_CONFIG=\"$git_config\" cvs -Q add simpleText.c\n"> <LIT_CHARS " ) &&\n"> <LIT_CHARS " marked_as cvswork simpleText.c \"\"\n">]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ <LIT_CHARS "add bin (guess)">]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS " (cd cvswork &&\n"> <LIT_CHARS " echo \"simpleBin: NUL: Q <- there\" | q_to_nul > simpleBin.bin &&\n"> <LIT_CHARS " GIT_CONFIG=\"$git_config\" cvs -Q add simpleBin.bin\n"> <LIT_CHARS " ) &&\n"> <LIT_CHARS " marked_as cvswork simpleBin.bin -kb\n">]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ <LIT_CHARS "remove files (guess)">]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS " (cd cvswork &&\n"> <LIT_CHARS " GIT_CONFIG=\"$git_config\" cvs -Q rm -f subdir/file.h &&\n"> <LIT_CHARS " (cd subdir &&\n"> <LIT_CHARS " GIT_CONFIG=\"$git_config\" cvs -Q rm -f withCr.bin\n"> <LIT_CHARS " )) &&\n"> <LIT_CHARS " marked_as cvswork/subdir withCr.bin -kb &&\n"> <LIT_CHARS " marked_as cvswork/subdir file.h \"\"\n">]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ <LIT_CHARS "cvs ci (guess)">]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS " (cd cvswork &&\n"> <LIT_CHARS " GIT_CONFIG=\"$git_config\" cvs -Q ci -m \"add/rm files\" >cvs.log 2>&1\n"> <LIT_CHARS " ) &&\n"> <LIT_CHARS " marked_as cvswork textfile.c \"\" &&\n"> <LIT_CHARS " marked_as cvswork binfile.bin -kb &&\n"> <LIT_CHARS " marked_as cvswork .gitattributes \"\" &&\n"> <LIT_CHARS " marked_as cvswork mixedUp.c -kb &&\n"> <LIT_CHARS " marked_as cvswork multiline.c -kb &&\n"> <LIT_CHARS " marked_as cvswork multilineTxt.c \"\" &&\n"> <LIT_CHARS " not_present cvswork/subdir withCr.bin &&\n"> <LIT_CHARS " not_present cvswork/subdir file.h &&\n"> <LIT_CHARS " marked_as cvswork/subdir unspecified.other \"\" &&\n"> <LIT_CHARS " marked_as cvswork/subdir newfile.bin \"\" &&\n"> <LIT_CHARS " marked_as cvswork/subdir newfile.c \"\" &&\n"> <LIT_CHARS " marked_as cvswork simpleBin.bin -kb &&\n"> <LIT_CHARS " marked_as cvswork simpleText.c \"\"\n">]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ <LIT_CHARS "update subdir of other copy (guess)">]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS " (cd cvswork2/subdir &&\n"> <LIT_CHARS " GIT_CONFIG=\"$git_config\" cvs -Q update\n"> <LIT_CHARS " ) &&\n"> <LIT_CHARS " marked_as cvswork2 textfile.c \"\" &&\n"> <LIT_CHARS " marked_as cvswork2 binfile.bin -kb &&\n"> <LIT_CHARS " marked_as cvswork2 .gitattributes \"\" &&\n"> <LIT_CHARS " marked_as cvswork2 mixedUp.c -kb &&\n"> <LIT_CHARS " marked_as cvswork2 multiline.c -kb &&\n"> <LIT_CHARS " marked_as cvswork2 multilineTxt.c \"\" &&\n"> <LIT_CHARS " not_present cvswork2/subdir withCr.bin &&\n"> <LIT_CHARS " not_present cvswork2/subdir file.h &&\n"> <LIT_CHARS " marked_as cvswork2/subdir unspecified.other \"\" &&\n"> <LIT_CHARS " marked_as cvswork2/subdir newfile.bin \"\" &&\n"> <LIT_CHARS " marked_as cvswork2/subdir newfile.c \"\" &&\n"> <LIT_CHARS " not_present cvswork2 simpleBin.bin &&\n"> <LIT_CHARS " not_present cvswork2 simpleText.c\n">]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "starting update/merge"]]} < (FilenameRedirectNode filename={[DQ [VarSub WORKDIR][LIT_CHARS /marked.log]]} <REDIR_DGREAT ">>"> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ <LIT_CHARS "update/merge full other copy (guess)">]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS " git pull gitcvs.git master &&\n"> <LIT_CHARS " sed \"s/3/replaced_3/\" < multilineTxt.c > ml.temp &&\n"> <LIT_CHARS " mv ml.temp multilineTxt.c &&\n"> <LIT_CHARS " git add multilineTxt.c &&\n"> <LIT_CHARS " git commit -q -m \"modify multiline file\" >> \"${WORKDIR}/marked.log\" &&\n"> <LIT_CHARS " git push gitcvs.git >/dev/null &&\n"> <LIT_CHARS " (cd cvswork2 &&\n"> <LIT_CHARS " sed \"s/1/replaced_1/\" < multilineTxt.c > ml.temp &&\n"> <LIT_CHARS " mv ml.temp multilineTxt.c &&\n"> <LIT_CHARS " GIT_CONFIG=\"$git_config\" cvs update > cvs.log 2>&1\n"> <LIT_CHARS " ) &&\n"> <LIT_CHARS " marked_as cvswork2 textfile.c \"\" &&\n"> <LIT_CHARS " marked_as cvswork2 binfile.bin -kb &&\n"> <LIT_CHARS " marked_as cvswork2 .gitattributes \"\" &&\n"> <LIT_CHARS " marked_as cvswork2 mixedUp.c -kb &&\n"> <LIT_CHARS " marked_as cvswork2 multiline.c -kb &&\n"> <LIT_CHARS " marked_as cvswork2 multilineTxt.c \"\" &&\n"> <LIT_CHARS " not_present cvswork2/subdir withCr.bin &&\n"> <LIT_CHARS " not_present cvswork2/subdir file.h &&\n"> <LIT_CHARS " marked_as cvswork2/subdir unspecified.other \"\" &&\n"> <LIT_CHARS " marked_as cvswork2/subdir newfile.bin \"\" &&\n"> <LIT_CHARS " marked_as cvswork2/subdir newfile.c \"\" &&\n"> <LIT_CHARS " marked_as cvswork2 simpleBin.bin -kb &&\n"> <LIT_CHARS " marked_as cvswork2 simpleText.c \"\" &&\n"> <LIT_CHARS " echo \"line replaced_1\" > tmpExpect2 &&\n"> <LIT_CHARS " echo \"line 2\" >> tmpExpect2 &&\n"> <LIT_CHARS " echo \"line replaced_3\" >> tmpExpect2 &&\n"> <LIT_CHARS " echo \"line 4\" | q_to_nul >> tmpExpect2 &&\n"> <LIT_CHARS " cmp cvswork2/multilineTxt.c tmpExpect2\n">]} ) (Com {[LIT_CHARS test_done]} ) )