(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]}  )
)