(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 -kb modes\n' span_id:18) 
                (Token id:Id.Lit_Chars val:'\n' span_id:19) (Token id:Id.Lit_Chars val:'tests -kb mode for binary files when accessing a git\n' span_id:20) 
                (Token
                  id: Id.Lit_Chars
                  val: 'repository using cvs CLI client via git-cvsserver server'
                  span_id: 21
                )
              )
            }
          spids: [16]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (command.ShFunction
      name: marked_as
      body: 
        (command.BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:foundEntry)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (command_sub
                          left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:40)
                          command_list: 
                            (command.CommandList
                              children: [
                                (C {(grep)} {(DQ ('^/') ($ Id.VSub_Number '$2') (/))} 
                                  {(DQ ($ Id.VSub_Number '$1') (/CVS/Entries))}
                                )
                              ]
                            )
                        )
                      )
                    }
                  spids: [38]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(x) (DQ ($ Id.VSub_DollarName '$foundEntry'))} 
                          {(Id.Lit_Equals '=')} {(x) (DQ )} {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:74)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [
                        {(echo)}
                        {
                          (DQ ('NOT FOUND: ') ($ Id.VSub_Number '$1') (' ') ($ Id.VSub_Number '$2') 
                            (' 1 ') ($ Id.VSub_Number '$3')
                          )
                        }
                      ]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_DGreat val:'>>' span_id:90)
                          fd: -1
                          arg_word: {(DQ (${ Id.VSub_Name WORKDIR) (/marked.log))}
                        )
                      ]
                    )
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:100)
                      arg_word: {(1)}
                    )
                  ]
                  spids: [57 76]
                )
              ]
            )
            (C {(test)} 
              {(x) 
                (DQ 
                  (command_sub
                    left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:112)
                    command_list: 
                      (command.CommandList
                        children: [
                          (command.Pipeline
                            children: [
                              (C {(grep)} {(DQ ('^/') ($ Id.VSub_Number '$2') (/))} 
                                {(DQ ($ Id.VSub_Number '$1') (/CVS/Entries))}
                              )
                              (C {(cut)} {(-d/)} {(-f5)})
                            ]
                            negated: F
                          )
                        ]
                      )
                  )
                )
              } {(Id.Lit_Equals '=')} {(x) (DQ ($ Id.VSub_Number '$3'))}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:stat)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [144]
                )
              ]
            )
            (command.Simple
              words: [
                {(echo)}
                {
                  (DQ ($ Id.VSub_Number '$1') (' ') ($ Id.VSub_Number '$2') (' ') 
                    ($ Id.VSub_DollarName '$stat') (" '") ($ Id.VSub_Number '$3') ("'")
                  )
                }
              ]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_DGreat val:'>>' span_id:161)
                  fd: -1
                  arg_word: {(DQ (${ Id.VSub_Name WORKDIR) (/marked.log))}
                )
              ]
            )
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Return val:return span_id:171)
              arg_word: {($ Id.VSub_DollarName '$stat')}
            )
          ]
        )
    )
    (command.ShFunction
      name: not_present
      body: 
        (command.BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:foundEntry)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (command_sub
                          left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:187)
                          command_list: 
                            (command.CommandList
                              children: [
                                (C {(grep)} {(DQ ('^/') ($ Id.VSub_Number '$2') (/))} 
                                  {(DQ ($ Id.VSub_Number '$1') (/CVS/Entries))}
                                )
                              ]
                            )
                        )
                      )
                    }
                  spids: [185]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-r)} 
                          {(DQ ($ Id.VSub_Number '$1') (/) ($ Id.VSub_Number '$2'))} {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:218)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [
                        {(echo)}
                        {
                          (DQ ('Error: File still exists: ') ($ Id.VSub_Number '$1') (' ') 
                            ($ Id.VSub_Number '$2')
                          )
                        }
                      ]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_DGreat val:'>>' span_id:232)
                          fd: -1
                          arg_word: {(DQ (${ Id.VSub_Name WORKDIR) (/marked.log))}
                        )
                      ]
                    )
                    (command.Sentence
                      child: 
                        (command.ControlFlow
                          token: (Token id:Id.ControlFlow_Return val:return span_id:242)
                          arg_word: {(1)}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:245)
                    )
                  ]
                  spids: [204 220]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(x) (DQ ($ Id.VSub_DollarName '$foundEntry'))} 
                          {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(x) (DQ )} {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:269)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [
                        {(echo)}
                        {
                          (DQ ('Error: should not have found: ') ($ Id.VSub_Number '$1') (' ') 
                            ($ Id.VSub_Number '$2')
                          )
                        }
                      ]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_DGreat val:'>>' span_id:283)
                          fd: -1
                          arg_word: {(DQ (${ Id.VSub_Name WORKDIR) (/marked.log))}
                        )
                      ]
                    )
                    (command.Sentence
                      child: 
                        (command.ControlFlow
                          token: (Token id:Id.ControlFlow_Return val:return span_id:293)
                          arg_word: {(1)}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:296)
                    )
                  ]
                  spids: [251 271]
                )
              ]
              else_action: [
                (command.Simple
                  words: [
                    {(echo)}
                    {
                      (DQ ('Correctly not found: ') ($ Id.VSub_Number '$1') (' ') 
                        ($ Id.VSub_Number '$2')
                      )
                    }
                  ]
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_DGreat val:'>>' span_id:311)
                      fd: -1
                      arg_word: {(DQ (${ Id.VSub_Name WORKDIR) (/marked.log))}
                    )
                  ]
                )
                (command.Sentence
                  child: 
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:321)
                      arg_word: {(0)}
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:324)
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: check_status_options
      body: 
        (command.BraceGroup
          children: [
            (command.Subshell
              command_list: 
                (command.CommandList
                  children: [
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {(cd)} {(DQ ($ Id.VSub_Number '$1'))})
                        (command.Simple
                          words: [{(cvs)} {(-Q)} {(status)} {(DQ ($ Id.VSub_Number '$2'))}]
                          redirects: [
                            (redir.Redir
                              op: (Token id:Id.Redir_Great val:'>' span_id:364)
                              fd: -1
                              arg_word: {(DQ (${ Id.VSub_Name WORKDIR) (/status.out))}
                            )
                            (redir.Redir
                              op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:373)
                              fd: 2
                              arg_word: {(1)}
                            )
                          ]
                          more_env: [
                            (env_pair
                              name: GIT_CONFIG
                              val: {(DQ ($ Id.VSub_DollarName '$git_config'))}
                              spids: [349]
                            )
                          ]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(x) (DQ ($ Id.VSub_QMark '$?'))} 
                          {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(x) (DQ (0))} {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:399)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [
                        {(echo)}
                        {
                          (DQ ('Error from cvs status: ') ($ Id.VSub_Number '$1') (' ') 
                            ($ Id.VSub_Number '$2')
                          )
                        }
                      ]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_DGreat val:'>>' span_id:413)
                          fd: -1
                          arg_word: {(DQ (${ Id.VSub_Name WORKDIR) (/marked.log))}
                        )
                      ]
                    )
                    (command.Sentence
                      child: 
                        (command.ControlFlow
                          token: (Token id:Id.ControlFlow_Return val:return span_id:423)
                          arg_word: {(1)}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:426)
                    )
                  ]
                  spids: [380 401]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:got)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (command_sub
                          left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:434)
                          command_list: 
                            (command.CommandList
                              children: [
                                (C {(sed)} {(-n)} {(-e)} 
                                  {
                                    (SQ 
                                      (Token
                                        id: Id.Lit_Chars
                                        val: 's/^[ \t]*Sticky Options:[ \t]*//p'
                                        span_id: 442
                                      )
                                    )
                                  } {(DQ (${ Id.VSub_Name WORKDIR) (/status.out))}
                                )
                              ]
                            )
                        )
                      )
                    }
                  spids: [432]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:expect)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number '$3'))}
                  spids: [455]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(x) (DQ ($ Id.VSub_DollarName '$expect'))} 
                          {(Id.Lit_Equals '=')} {(x) (DQ )} {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:478)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:expect)
                          op: assign_op.Equal
                          rhs: {(DQ ('(none)'))}
                          spids: [483]
                        )
                      ]
                    )
                  ]
                  spids: [461 480]
                )
              ]
            )
            (C {(test)} {(x) (DQ ($ Id.VSub_DollarName '$got'))} {(Id.Lit_Equals '=')} 
              {(x) (DQ ($ Id.VSub_DollarName '$expect'))}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:stat)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [507]
                )
              ]
            )
            (command.Simple
              words: [
                {(echo)}
                {
                  (DQ ('cvs status: ') ($ Id.VSub_Number '$1') (' ') ($ Id.VSub_Number '$2') (' ') 
                    ($ Id.VSub_DollarName '$stat') (" '") ($ Id.VSub_Number '$3') ("' '") ($ Id.VSub_DollarName '$got') ("'")
                  )
                }
              ]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_DGreat val:'>>' span_id:527)
                  fd: -1
                  arg_word: {(DQ (${ Id.VSub_Name WORKDIR) (/marked.log))}
                )
              ]
            )
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Return val:return span_id:537)
              arg_word: {($ Id.VSub_DollarName '$stat')}
            )
          ]
        )
    )
    (command.Simple
      words: [{(cvs)}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:546)
          fd: -1
          arg_word: {(/dev/null)}
        )
        (redir.Redir op:(Token id:Id.Redir_GreatAnd val:'2>&' span_id:549) 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: 567
                        )
                      )
                    }
                  spids: [565]
                )
              ]
            )
            (C {(test_done)})
          ]
          spids: [552 562]
        )
      ]
    )
    (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: 588
                        )
                      )
                    }
                  spids: [586]
                )
              ]
            )
            (C {(test_done)})
          ]
          spids: [575 583]
        )
      ]
    )
    (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:601))}
          ]
          redirects: [
            (redir.Redir
              op: (Token id:Id.Redir_Great val:'>' span_id:604)
              fd: -1
              arg_word: {(/dev/null)}
            )
            (redir.Redir
              op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:607)
              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: 617
                        )
                      )
                    }
                  spids: [615]
                )
              ]
            )
            (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: [632]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:SERVERDIR)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName '$PWD') (/gitcvs.git)}
          spids: [635]
        )
      ]
    )
    (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: [639]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CVSROOT)
          op: assign_op.Equal
          rhs: {(DQ (':fork:') ($ Id.VSub_DollarName '$SERVERDIR'))}
          spids: [645]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CVSWORK)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName '$PWD') (/cvswork))}
          spids: [651]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CVS_SERVER)
          op: assign_op.Equal
          rhs: {(git-cvsserver)}
          spids: [657]
        )
      ]
    )
    (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 span_id:682))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:686) 
          (Token
            id: Id.Lit_Chars
            val: '    git config push.default matching &&\n'
            span_id: 687
          ) (Token id:Id.Lit_Chars val:'    echo "Simple text file" >textfile.c &&\n' span_id:688) 
          (Token
            id: Id.Lit_Chars
            val: '    echo "File with embedded NUL: Q <- there" | q_to_nul > binfile.bin &&\n'
            span_id: 689
          ) (Token id:Id.Lit_Chars val:'    mkdir subdir &&\n' span_id:690) 
          (Token
            id: Id.Lit_Chars
            val: '    echo "Another text file" > subdir/file.h &&\n'
            span_id: 691
          ) 
          (Token
            id: Id.Lit_Chars
            val: '    echo "Another binary: Q (this time CR)" | q_to_cr > subdir/withCr.bin &&\n'
            span_id: 692
          ) 
          (Token
            id: Id.Lit_Chars
            val: '    echo "Mixed up NUL, but marked text: Q <- there" | q_to_nul > mixedUp.c &&\n'
            span_id: 693
          ) (Token id:Id.Lit_Chars val:'    echo "Unspecified" > subdir/unspecified.other &&\n' span_id:694) 
          (Token
            id: Id.Lit_Chars
            val: '    echo "/*.bin -crlf" > .gitattributes &&\n'
            span_id: 695
          ) (Token id:Id.Lit_Chars val:'    echo "/*.c crlf" >> .gitattributes &&\n' span_id:696) 
          (Token
            id: Id.Lit_Chars
            val: '    echo "subdir/*.bin -crlf" >> .gitattributes &&\n'
            span_id: 697
          ) (Token id:Id.Lit_Chars val:'    echo "subdir/*.c crlf" >> .gitattributes &&\n' span_id:698) 
          (Token
            id: Id.Lit_Chars
            val: '    echo "subdir/file.h crlf" >> .gitattributes &&\n'
            span_id: 699
          ) 
          (Token
            id: Id.Lit_Chars
            val: '    git add .gitattributes textfile.c binfile.bin mixedUp.c subdir/* &&\n'
            span_id: 700
          ) (Token id:Id.Lit_Chars val:'    git commit -q -m "First Commit" &&\n' span_id:701) 
          (Token
            id: Id.Lit_Chars
            val: '    git clone -q --bare "$WORKDIR/.git" "$SERVERDIR" >/dev/null 2>&1 &&\n'
            span_id: 702
          ) 
          (Token
            id: Id.Lit_Chars
            val: '    GIT_DIR="$SERVERDIR" git config --bool gitcvs.enabled true &&\n'
            span_id: 703
          ) 
          (Token
            id: Id.Lit_Chars
            val: '    GIT_DIR="$SERVERDIR" git config gitcvs.logfile "$SERVERDIR/gitcvs.log"\n'
            span_id: 704
          )
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cvs co (default crlf)' span_id:711))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:715) 
          (Token
            id: Id.Lit_Chars
            val: '    GIT_CONFIG="$git_config" cvs -Q co -d cvswork master >cvs.log 2>&1 &&\n'
            span_id: 716
          ) (Token id:Id.Lit_Chars val:'    test x"$(grep ' span_id:717)
        ) (/-k) 
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: ' cvswork/CVS/Entries cvswork/subdir/CVS/Entries)" = x""\n'
            span_id: 721
          )
        )
      }
    )
    (C {(rm)} {(-rf)} {(cvswork)})
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cvs co (allbinary)' span_id:734))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:738) 
          (Token
            id: Id.Lit_Chars
            val: '    GIT_DIR="$SERVERDIR" git config --bool gitcvs.allbinary true &&\n'
            span_id: 739
          ) 
          (Token
            id: Id.Lit_Chars
            val: '    GIT_CONFIG="$git_config" cvs -Q co -d cvswork master >cvs.log 2>&1 &&\n'
            span_id: 740
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork textfile.c -kb &&\n' span_id:741) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork binfile.bin -kb &&\n'
            span_id: 742
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork .gitattributes -kb &&\n' span_id:743) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork mixedUp.c -kb &&\n'
            span_id: 744
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork/subdir withCr.bin -kb &&\n' span_id:745) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork/subdir file.h -kb &&\n'
            span_id: 746
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork/subdir unspecified.other -kb\n' span_id:747)
        )
      }
    )
    (C {(rm)} {(-rf)} {(cvswork)} {(cvs.log)})
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'cvs co (use attributes/allbinary)' span_id:762))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:766) 
          (Token
            id: Id.Lit_Chars
            val: '    GIT_DIR="$SERVERDIR" git config --bool gitcvs.usecrlfattr true &&\n'
            span_id: 767
          ) 
          (Token
            id: Id.Lit_Chars
            val: '    GIT_CONFIG="$git_config" cvs -Q co -d cvswork master >cvs.log 2>&1 &&\n'
            span_id: 768
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork textfile.c "" &&\n' span_id:769) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork binfile.bin -kb &&\n'
            span_id: 770
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork .gitattributes -kb &&\n' span_id:771) 
          (Token id:Id.Lit_Chars val:'    marked_as cvswork mixedUp.c "" &&\n' span_id:772) (Token id:Id.Lit_Chars val:'    marked_as cvswork/subdir withCr.bin -kb &&\n' span_id:773) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork/subdir file.h "" &&\n'
            span_id: 774
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork/subdir unspecified.other -kb\n' span_id:775)
        )
      }
    )
    (C {(rm)} {(-rf)} {(cvswork)})
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cvs co (use attributes)' span_id:788))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:792) 
          (Token
            id: Id.Lit_Chars
            val: '    GIT_DIR="$SERVERDIR" git config --bool gitcvs.allbinary false &&\n'
            span_id: 793
          ) 
          (Token
            id: Id.Lit_Chars
            val: '    GIT_CONFIG="$git_config" cvs -Q co -d cvswork master >cvs.log 2>&1 &&\n'
            span_id: 794
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork textfile.c "" &&\n' span_id:795) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork binfile.bin -kb &&\n'
            span_id: 796
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork .gitattributes "" &&\n' span_id:797) 
          (Token id:Id.Lit_Chars val:'    marked_as cvswork mixedUp.c "" &&\n' span_id:798) (Token id:Id.Lit_Chars val:'    marked_as cvswork/subdir withCr.bin -kb &&\n' span_id:799) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork/subdir file.h "" &&\n'
            span_id: 800
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork/subdir unspecified.other ""\n' span_id:801)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'adding files' span_id:808))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:812) 
          (Token id:Id.Lit_Chars val:'    (cd cvswork &&\n' span_id:813) (Token id:Id.Lit_Chars val:'    (cd subdir &&\n' span_id:814) 
          (Token id:Id.Lit_Chars val:'    echo "more text" > src.c &&\n' span_id:815) 
          (Token
            id: Id.Lit_Chars
            val: '    GIT_CONFIG="$git_config" cvs -Q add src.c >cvs.log 2>&1 &&\n'
            span_id: 816
          ) (Token id:Id.Lit_Chars val:'    marked_as . src.c "" &&\n' span_id:817) 
          (Token id:Id.Lit_Chars val:'    echo "pseudo-binary" > temp.bin\n' span_id:818) (Token id:Id.Lit_Chars val:'    ) &&\n' span_id:819) 
          (Token
            id: Id.Lit_Chars
            val: '    GIT_CONFIG="$git_config" cvs -Q add subdir/temp.bin >cvs.log 2>&1 &&\n'
            span_id: 820
          ) (Token id:Id.Lit_Chars val:'    marked_as subdir temp.bin "-kb" &&\n' span_id:821) 
          (Token id:Id.Lit_Chars val:'    cd subdir &&\n' span_id:822) 
          (Token
            id: Id.Lit_Chars
            val: '    GIT_CONFIG="$git_config" cvs -Q ci -m "adding files" >cvs.log 2>&1 &&\n'
            span_id: 823
          ) (Token id:Id.Lit_Chars val:'    marked_as . temp.bin "-kb" &&\n' span_id:824) 
          (Token id:Id.Lit_Chars val:'    marked_as . src.c ""\n' span_id:825) (Token id:Id.Lit_Chars val:'    )\n' span_id:826)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:updating span_id:833))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:837) 
          (Token id:Id.Lit_Chars val:'    git pull gitcvs.git &&\n' span_id:838) (Token id:Id.Lit_Chars val:'    echo ' span_id:839)
        ) (hi) 
        (SQ (Token id:Id.Lit_Chars val:' > subdir/newfile.bin &&\n' span_id:843) 
          (Token id:Id.Lit_Chars val:'    echo ' span_id:844)
        ) (junk) 
        (SQ (Token id:Id.Lit_Chars val:' > subdir/file.h &&\n' span_id:848) 
          (Token id:Id.Lit_Chars val:'    echo ' span_id:849)
        ) (hi) 
        (SQ (Token id:Id.Lit_Chars val:' > subdir/newfile.c &&\n' span_id:853) 
          (Token id:Id.Lit_Chars val:'    echo ' span_id:854)
        ) (hello) 
        (SQ (Token id:Id.Lit_Chars val:' >> binfile.bin &&\n' span_id:858) 
          (Token
            id: Id.Lit_Chars
            val: '    git add subdir/newfile.bin subdir/file.h subdir/newfile.c binfile.bin &&\n'
            span_id: 859
          ) (Token id:Id.Lit_Chars val:'    git commit -q -m "Add and change some files" &&\n' span_id:860) 
          (Token id:Id.Lit_Chars val:'    git push gitcvs.git >/dev/null &&\n' span_id:861) (Token id:Id.Lit_Chars val:'    (cd cvswork &&\n' span_id:862) 
          (Token
            id: Id.Lit_Chars
            val: '    GIT_CONFIG="$git_config" cvs -Q update\n'
            span_id: 863
          ) (Token id:Id.Lit_Chars val:'    ) &&\n' span_id:864) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork textfile.c "" &&\n'
            span_id: 865
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork binfile.bin -kb &&\n' span_id:866) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork .gitattributes "" &&\n'
            span_id: 867
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork mixedUp.c "" &&\n' span_id:868) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork/subdir withCr.bin -kb &&\n'
            span_id: 869
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork/subdir file.h "" &&\n' span_id:870) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork/subdir unspecified.other "" &&\n'
            span_id: 871
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork/subdir newfile.bin -kb &&\n' span_id:872) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork/subdir newfile.c "" &&\n'
            span_id: 873
          ) 
          (Token
            id: Id.Lit_Chars
            val: '    echo "File with embedded NUL: Q <- there" | q_to_nul > tmpExpect1 &&\n'
            span_id: 874
          ) (Token id:Id.Lit_Chars val:'    echo "hello" >> tmpExpect1 &&\n' span_id:875) 
          (Token
            id: Id.Lit_Chars
            val: '    cmp cvswork/binfile.bin tmpExpect1\n'
            span_id: 876
          )
        )
      }
    )
    (C {(rm)} {(-rf)} {(cvswork)})
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'cvs co (use attributes/guess)' span_id:889))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:893) 
          (Token
            id: Id.Lit_Chars
            val: '    GIT_DIR="$SERVERDIR" git config gitcvs.allbinary guess &&\n'
            span_id: 894
          ) 
          (Token
            id: Id.Lit_Chars
            val: '    GIT_CONFIG="$git_config" cvs -Q co -d cvswork master >cvs.log 2>&1 &&\n'
            span_id: 895
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork textfile.c "" &&\n' span_id:896) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork binfile.bin -kb &&\n'
            span_id: 897
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork .gitattributes "" &&\n' span_id:898) 
          (Token id:Id.Lit_Chars val:'    marked_as cvswork mixedUp.c "" &&\n' span_id:899) (Token id:Id.Lit_Chars val:'    marked_as cvswork/subdir withCr.bin -kb &&\n' span_id:900) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork/subdir file.h "" &&\n'
            span_id: 901
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork/subdir unspecified.other "" &&\n' span_id:902) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork/subdir newfile.bin -kb &&\n'
            span_id: 903
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork/subdir newfile.c ""\n' span_id:904)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup multi-line files' span_id:911))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:915) 
          (Token id:Id.Lit_Chars val:'    ( echo "line 1" &&\n' span_id:916) (Token id:Id.Lit_Chars val:'      echo "line 2" &&\n' span_id:917) 
          (Token id:Id.Lit_Chars val:'      echo "line 3" &&\n' span_id:918) 
          (Token
            id: Id.Lit_Chars
            val: '      echo "line 4 with NUL: Q <-" ) | q_to_nul > multiline.c &&\n'
            span_id: 919
          ) (Token id:Id.Lit_Chars val:'    git add multiline.c &&\n' span_id:920) 
          (Token id:Id.Lit_Chars val:'    ( echo "line 1" &&\n' span_id:921) (Token id:Id.Lit_Chars val:'      echo "line 2" &&\n' span_id:922) 
          (Token id:Id.Lit_Chars val:'      echo "line 3" &&\n' span_id:923) (Token id:Id.Lit_Chars val:'      echo "line 4" ) | q_to_nul > multilineTxt.c &&\n' span_id:924) 
          (Token id:Id.Lit_Chars val:'    git add multilineTxt.c &&\n' span_id:925) (Token id:Id.Lit_Chars val:'    git commit -q -m "multiline files" &&\n' span_id:926) 
          (Token id:Id.Lit_Chars val:'    git push gitcvs.git >/dev/null\n' span_id:927)
        )
      }
    )
    (C {(rm)} {(-rf)} {(cvswork)})
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cvs co (guess)' span_id:940))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:944) 
          (Token
            id: Id.Lit_Chars
            val: '    GIT_DIR="$SERVERDIR" git config --bool gitcvs.usecrlfattr false &&\n'
            span_id: 945
          ) 
          (Token
            id: Id.Lit_Chars
            val: '    GIT_CONFIG="$git_config" cvs -Q co -d cvswork master >cvs.log 2>&1 &&\n'
            span_id: 946
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork textfile.c "" &&\n' span_id:947) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork binfile.bin -kb &&\n'
            span_id: 948
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork .gitattributes "" &&\n' span_id:949) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork mixedUp.c -kb &&\n'
            span_id: 950
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork multiline.c -kb &&\n' span_id:951) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork multilineTxt.c "" &&\n'
            span_id: 952
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork/subdir withCr.bin -kb &&\n' span_id:953) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork/subdir file.h "" &&\n'
            span_id: 954
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork/subdir unspecified.other "" &&\n' span_id:955) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork/subdir newfile.bin "" &&\n'
            span_id: 956
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork/subdir newfile.c ""\n' span_id:957)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'cvs co another copy (guess)' span_id:964))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:968) 
          (Token
            id: Id.Lit_Chars
            val: '    GIT_CONFIG="$git_config" cvs -Q co -d cvswork2 master >cvs.log 2>&1 &&\n'
            span_id: 969
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork2 textfile.c "" &&\n' span_id:970) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork2 binfile.bin -kb &&\n'
            span_id: 971
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork2 .gitattributes "" &&\n' span_id:972) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork2 mixedUp.c -kb &&\n'
            span_id: 973
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork2 multiline.c -kb &&\n' span_id:974) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork2 multilineTxt.c "" &&\n'
            span_id: 975
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork2/subdir withCr.bin -kb &&\n' span_id:976) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork2/subdir file.h "" &&\n'
            span_id: 977
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork2/subdir unspecified.other "" &&\n' span_id:978) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork2/subdir newfile.bin "" &&\n'
            span_id: 979
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork2/subdir newfile.c ""\n' span_id:980)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'cvs status - sticky options' span_id:987))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:991) 
          (Token
            id: Id.Lit_Chars
            val: '    check_status_options cvswork2 textfile.c "" &&\n'
            span_id: 992
          ) (Token id:Id.Lit_Chars val:'    check_status_options cvswork2 binfile.bin -kb &&\n' span_id:993) 
          (Token
            id: Id.Lit_Chars
            val: '    check_status_options cvswork2 .gitattributes "" &&\n'
            span_id: 994
          ) (Token id:Id.Lit_Chars val:'    check_status_options cvswork2 mixedUp.c -kb &&\n' span_id:995) 
          (Token
            id: Id.Lit_Chars
            val: '    check_status_options cvswork2 multiline.c -kb &&\n'
            span_id: 996
          ) (Token id:Id.Lit_Chars val:'    check_status_options cvswork2 multilineTxt.c "" &&\n' span_id:997) 
          (Token
            id: Id.Lit_Chars
            val: '    check_status_options cvswork2/subdir withCr.bin -kb &&\n'
            span_id: 998
          ) 
          (Token
            id: Id.Lit_Chars
            val: '    check_status_options cvswork2 subdir/withCr.bin -kb &&\n'
            span_id: 999
          ) (Token id:Id.Lit_Chars val:'    check_status_options cvswork2/subdir file.h "" &&\n' span_id:1000) 
          (Token
            id: Id.Lit_Chars
            val: '    check_status_options cvswork2 subdir/file.h "" &&\n'
            span_id: 1001
          ) 
          (Token
            id: Id.Lit_Chars
            val: '    check_status_options cvswork2/subdir unspecified.other "" &&\n'
            span_id: 1002
          ) 
          (Token
            id: Id.Lit_Chars
            val: '    check_status_options cvswork2/subdir newfile.bin "" &&\n'
            span_id: 1003
          ) (Token id:Id.Lit_Chars val:'    check_status_options cvswork2/subdir newfile.c ""\n' span_id:1004)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'add text (guess)' span_id:1011))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1015) 
          (Token id:Id.Lit_Chars val:'    (cd cvswork &&\n' span_id:1016) (Token id:Id.Lit_Chars val:'    echo "simpleText" > simpleText.c &&\n' span_id:1017) 
          (Token
            id: Id.Lit_Chars
            val: '    GIT_CONFIG="$git_config" cvs -Q add simpleText.c\n'
            span_id: 1018
          ) (Token id:Id.Lit_Chars val:'    ) &&\n' span_id:1019) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork simpleText.c ""\n'
            span_id: 1020
          )
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'add bin (guess)' span_id:1027))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1031) 
          (Token id:Id.Lit_Chars val:'    (cd cvswork &&\n' span_id:1032) 
          (Token
            id: Id.Lit_Chars
            val: '    echo "simpleBin: NUL: Q <- there" | q_to_nul > simpleBin.bin &&\n'
            span_id: 1033
          ) (Token id:Id.Lit_Chars val:'    GIT_CONFIG="$git_config" cvs -Q add simpleBin.bin\n' span_id:1034) 
          (Token id:Id.Lit_Chars val:'    ) &&\n' span_id:1035) (Token id:Id.Lit_Chars val:'    marked_as cvswork simpleBin.bin -kb\n' span_id:1036)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'remove files (guess)' span_id:1043))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1047) 
          (Token id:Id.Lit_Chars val:'    (cd cvswork &&\n' span_id:1048) 
          (Token
            id: Id.Lit_Chars
            val: '    GIT_CONFIG="$git_config" cvs -Q rm -f subdir/file.h &&\n'
            span_id: 1049
          ) (Token id:Id.Lit_Chars val:'    (cd subdir &&\n' span_id:1050) 
          (Token
            id: Id.Lit_Chars
            val: '    GIT_CONFIG="$git_config" cvs -Q rm -f withCr.bin\n'
            span_id: 1051
          ) (Token id:Id.Lit_Chars val:'    )) &&\n' span_id:1052) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork/subdir withCr.bin -kb &&\n'
            span_id: 1053
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork/subdir file.h ""\n' span_id:1054)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cvs ci (guess)' span_id:1061))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1065) 
          (Token id:Id.Lit_Chars val:'    (cd cvswork &&\n' span_id:1066) 
          (Token
            id: Id.Lit_Chars
            val: '    GIT_CONFIG="$git_config" cvs -Q ci -m "add/rm files" >cvs.log 2>&1\n'
            span_id: 1067
          ) (Token id:Id.Lit_Chars val:'    ) &&\n' span_id:1068) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork textfile.c "" &&\n'
            span_id: 1069
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork binfile.bin -kb &&\n' span_id:1070) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork .gitattributes "" &&\n'
            span_id: 1071
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork mixedUp.c -kb &&\n' span_id:1072) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork multiline.c -kb &&\n'
            span_id: 1073
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork multilineTxt.c "" &&\n' span_id:1074) 
          (Token
            id: Id.Lit_Chars
            val: '    not_present cvswork/subdir withCr.bin &&\n'
            span_id: 1075
          ) (Token id:Id.Lit_Chars val:'    not_present cvswork/subdir file.h &&\n' span_id:1076) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork/subdir unspecified.other "" &&\n'
            span_id: 1077
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork/subdir newfile.bin "" &&\n' span_id:1078) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork/subdir newfile.c "" &&\n'
            span_id: 1079
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork simpleBin.bin -kb &&\n' span_id:1080) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork simpleText.c ""\n'
            span_id: 1081
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'update subdir of other copy (guess)' span_id:1088))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1092) 
          (Token id:Id.Lit_Chars val:'    (cd cvswork2/subdir &&\n' span_id:1093) (Token id:Id.Lit_Chars val:'    GIT_CONFIG="$git_config" cvs -Q update\n' span_id:1094) 
          (Token id:Id.Lit_Chars val:'    ) &&\n' span_id:1095) (Token id:Id.Lit_Chars val:'    marked_as cvswork2 textfile.c "" &&\n' span_id:1096) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork2 binfile.bin -kb &&\n'
            span_id: 1097
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork2 .gitattributes "" &&\n' span_id:1098) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork2 mixedUp.c -kb &&\n'
            span_id: 1099
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork2 multiline.c -kb &&\n' span_id:1100) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork2 multilineTxt.c "" &&\n'
            span_id: 1101
          ) (Token id:Id.Lit_Chars val:'    not_present cvswork2/subdir withCr.bin &&\n' span_id:1102) 
          (Token
            id: Id.Lit_Chars
            val: '    not_present cvswork2/subdir file.h &&\n'
            span_id: 1103
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork2/subdir unspecified.other "" &&\n' span_id:1104) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork2/subdir newfile.bin "" &&\n'
            span_id: 1105
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork2/subdir newfile.c "" &&\n' span_id:1106) 
          (Token
            id: Id.Lit_Chars
            val: '    not_present cvswork2 simpleBin.bin &&\n'
            span_id: 1107
          ) (Token id:Id.Lit_Chars val:'    not_present cvswork2 simpleText.c\n' span_id:1108)
        )
      }
    )
    (command.Simple
      words: [{(echo)} {(DQ ('starting update/merge'))}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_DGreat val:'>>' span_id:1118)
          fd: -1
          arg_word: {(DQ (${ Id.VSub_Name WORKDIR) (/marked.log))}
        )
      ]
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'update/merge full other copy (guess)' span_id:1130))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1134) 
          (Token id:Id.Lit_Chars val:'    git pull gitcvs.git master &&\n' span_id:1135) (Token id:Id.Lit_Chars val:'    sed "s/3/replaced_3/" < multilineTxt.c > ml.temp &&\n' span_id:1136) 
          (Token id:Id.Lit_Chars val:'    mv ml.temp multilineTxt.c &&\n' span_id:1137) (Token id:Id.Lit_Chars val:'    git add multilineTxt.c &&\n' span_id:1138) 
          (Token
            id: Id.Lit_Chars
            val: '    git commit -q -m "modify multiline file" >> "${WORKDIR}/marked.log" &&\n'
            span_id: 1139
          ) (Token id:Id.Lit_Chars val:'    git push gitcvs.git >/dev/null &&\n' span_id:1140) 
          (Token id:Id.Lit_Chars val:'    (cd cvswork2 &&\n' span_id:1141) (Token id:Id.Lit_Chars val:'    sed "s/1/replaced_1/" < multilineTxt.c > ml.temp &&\n' span_id:1142) 
          (Token id:Id.Lit_Chars val:'    mv ml.temp multilineTxt.c &&\n' span_id:1143) (Token id:Id.Lit_Chars val:'    GIT_CONFIG="$git_config" cvs update > cvs.log 2>&1\n' span_id:1144) 
          (Token id:Id.Lit_Chars val:'    ) &&\n' span_id:1145) (Token id:Id.Lit_Chars val:'    marked_as cvswork2 textfile.c "" &&\n' span_id:1146) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork2 binfile.bin -kb &&\n'
            span_id: 1147
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork2 .gitattributes "" &&\n' span_id:1148) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork2 mixedUp.c -kb &&\n'
            span_id: 1149
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork2 multiline.c -kb &&\n' span_id:1150) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork2 multilineTxt.c "" &&\n'
            span_id: 1151
          ) (Token id:Id.Lit_Chars val:'    not_present cvswork2/subdir withCr.bin &&\n' span_id:1152) 
          (Token
            id: Id.Lit_Chars
            val: '    not_present cvswork2/subdir file.h &&\n'
            span_id: 1153
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork2/subdir unspecified.other "" &&\n' span_id:1154) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork2/subdir newfile.bin "" &&\n'
            span_id: 1155
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork2/subdir newfile.c "" &&\n' span_id:1156) 
          (Token
            id: Id.Lit_Chars
            val: '    marked_as cvswork2 simpleBin.bin -kb &&\n'
            span_id: 1157
          ) (Token id:Id.Lit_Chars val:'    marked_as cvswork2 simpleText.c "" &&\n' span_id:1158) 
          (Token
            id: Id.Lit_Chars
            val: '    echo "line replaced_1" > tmpExpect2 &&\n'
            span_id: 1159
          ) (Token id:Id.Lit_Chars val:'    echo "line 2" >> tmpExpect2 &&\n' span_id:1160) 
          (Token
            id: Id.Lit_Chars
            val: '    echo "line replaced_3" >> tmpExpect2 &&\n'
            span_id: 1161
          ) (Token id:Id.Lit_Chars val:'    echo "line 4" | q_to_nul >> tmpExpect2 &&\n' span_id:1162) 
          (Token
            id: Id.Lit_Chars
            val: '    cmp cvswork2/multilineTxt.c tmpExpect2\n'
            span_id: 1163
          )
        )
      }
    )
    (C {(test_done)})
  ]
)