(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'test_description='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'test_description='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test_description='> name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'check svn dumpfile importer'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {<'./test-lib.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <reinit_git>
      name: reinit_git
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Pipeline
                          negated: <Id.KW_Bang '!'>
                          children: [
                            (command.Simple
                              blame_tok: <test_declared_prereq>
                              more_env: []
                              words: [{<test_declared_prereq>} {<PIPE>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          ops: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'reinit_git: need to declare PIPE prerequisite'>)}]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<4>})]
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Return return>
                      arg_word: {<127>}
                    )
                  ]
                  spids: [23 32]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <rm>
                  more_env: []
                  words: [{<rm>} {<-fr>} {<.git>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <rm>
                  more_env: []
                  words: [{<rm>} {<-f>} {<stream>} {<backflow>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <git>
                  more_env: []
                  words: [{<git>} {<init>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <mkfifo>
                  more_env: []
                  words: [{<mkfifo>} {<stream>} {<backflow>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <try_dump>
      name: try_dump
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'input='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'input='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'input='> name:input)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'maybe_fail_svnfe='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'maybe_fail_svnfe='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'maybe_fail_svnfe='>
                          name: maybe_fail_svnfe
                        )
                      op: assign_op.Equal
                      rhs: 
                        {
                          (BracedVarSub
                            left: <Id.Left_DollarBrace '${'>
                            token: <Id.VSub_Number 2>
                            var_name: 2
                            suffix_op: 
                              (suffix_op.Unary
                                op: <Id.VTest_ColonPlus _>
                                arg_word: {<test_> ($ Id.VSub_Number 2)}
                              )
                            right: <Id.Right_DollarBrace '}'>
                          )
                        }
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'maybe_fail_fi='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'maybe_fail_fi='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'maybe_fail_fi='>
                          name: maybe_fail_fi
                        )
                      op: assign_op.Equal
                      rhs: 
                        {
                          (BracedVarSub
                            left: <Id.Left_DollarBrace '${'>
                            token: <Id.VSub_Number 3>
                            var_name: 3
                            suffix_op: 
                              (suffix_op.Unary
                                op: <Id.VTest_ColonPlus _>
                                arg_word: {<test_> ($ Id.VSub_Number 3)}
                              )
                            right: <Id.Right_DollarBrace '}'>
                          )
                        }
                    )
                  ]
                  redirects: []
                )
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <Id.VSub_DollarName '$maybe_fail_svnfe'>
                          more_env: []
                          words: [
                            {($ Id.VSub_DollarName maybe_fail_svnfe)}
                            {<test-svn-fe>}
                            {(DQ ($ Id.VSub_DollarName input))}
                          ]
                          redirects: [
                            (Redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<stream>}
                            )
                            (Redir
                              op: <Id.Redir_Less '3<'>
                              loc: (redir_loc.Fd fd:3)
                              arg: {<backflow>}
                            )
                          ]
                          do_fork: T
                        )
                      terminator: <Id.Op_Amp _>
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$maybe_fail_fi'>
                  more_env: []
                  words: [
                    {($ Id.VSub_DollarName maybe_fail_fi)}
                    {<git>}
                    {<fast-import>}
                    {<--cat-blob-fd> <Id.Lit_Equals '='> <3>}
                  ]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Less '<'>
                      loc: (redir_loc.Fd fd:0)
                      arg: {<stream>}
                    )
                    (Redir
                      op: <Id.Redir_Great '3>'>
                      loc: (redir_loc.Fd fd:3)
                      arg: {<backflow>}
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <wait>
                  more_env: []
                  words: [{<wait>} {($ Id.VSub_Bang '!')}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <properties>
      name: properties
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {(DQ ($ Id.VSub_Pound '#'))} {<-ne>} {<0>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.AndOr
                      children: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'property='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'property='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'property='> name:property)
                              op: assign_op.Equal
                              rhs: {(DQ ($ Id.VSub_Number 1))}
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'value='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'value='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'value='> name:value)
                              op: assign_op.Equal
                              rhs: {(DQ ($ Id.VSub_Number 2))}
                            )
                          ]
                          redirects: []
                        )
                        (command.Simple
                          blame_tok: <printf>
                          more_env: []
                          words: [
                            {<printf>}
                            {(DQ <'%s'> <Id.Lit_BadBackslash '\\'> <n>)}
                            {
                              (DQ <'K '> 
                                (BracedVarSub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name property>
                                  var_name: property
                                  prefix_op: <Id.VSub_Pound '#'>
                                  right: <Id.Right_DollarBrace '}'>
                                )
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <printf>
                          more_env: []
                          words: [
                            {<printf>}
                            {(DQ <'%s'> <Id.Lit_BadBackslash '\\'> <n>)}
                            {(DQ ($ Id.VSub_DollarName property))}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <printf>
                          more_env: []
                          words: [
                            {<printf>}
                            {(DQ <'%s'> <Id.Lit_BadBackslash '\\'> <n>)}
                            {
                              (DQ <'V '> 
                                (BracedVarSub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name value>
                                  var_name: value
                                  prefix_op: <Id.VSub_Pound '#'>
                                  right: <Id.Right_DollarBrace '}'>
                                )
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <printf>
                          more_env: []
                          words: [
                            {<printf>}
                            {(DQ <'%s'> <Id.Lit_BadBackslash '\\'> <n>)}
                            {(DQ ($ Id.VSub_DollarName value))}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <shift>
                          more_env: []
                          words: [{<shift>} {<2>}]
                          redirects: []
                          do_fork: T
                        )
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Return return>
                          arg_word: {<1>}
                        )
                      ]
                      ops: [
                        <Id.Op_DAmp _>
                        <Id.Op_DAmp _>
                        <Id.Op_DAmp _>
                        <Id.Op_DAmp _>
                        <Id.Op_DAmp _>
                        <Id.Op_DAmp _>
                        <Id.Op_DPipe _>
                      ]
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <text_no_props>
      name: text_no_props
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'text='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'text='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'text='> name:text)
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_Number 1) <'\n'>)}
                    )
                  ]
                  redirects: []
                )
                (command.Simple
                  blame_tok: <printf>
                  more_env: []
                  words: [
                    {<printf>}
                    {(DQ <'%s'> <Id.Lit_BadBackslash '\\'> <n>)}
                    {(DQ <'Prop-content-length: 10'>)}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <printf>
                  more_env: []
                  words: [
                    {<printf>}
                    {(DQ <'%s'> <Id.Lit_BadBackslash '\\'> <n>)}
                    {
                      (DQ <'Text-content-length: '> 
                        (BracedVarSub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name text>
                          var_name: text
                          prefix_op: <Id.VSub_Pound '#'>
                          right: <Id.Right_DollarBrace '}'>
                        )
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <printf>
                  more_env: []
                  words: [
                    {<printf>}
                    {(DQ <'%s'> <Id.Lit_BadBackslash '\\'> <n>)}
                    {
                      (DQ <'Content-length: '> 
                        (word_part.ArithSub
                          left: <Id.Left_DollarDParen '$(('>
                          anode: 
                            (arith_expr.Binary
                              op_id: Id.Arith_Plus
                              left: 
                                {
                                  (BracedVarSub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name text>
                                    var_name: text
                                    prefix_op: <Id.VSub_Pound '#'>
                                    right: <Id.Right_DollarBrace '}'>
                                  )
                                }
                              right: {<Id.Lit_Digits 10>}
                            )
                          right: <Id.Right_DollarDParen _>
                        )
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <printf>
                  more_env: []
                  words: [
                    {<printf>}
                    {(DQ <'%s'> <Id.Lit_BadBackslash '\\'> <n>)}
                    {(DQ )}
                    {(DQ <PROPS-END>)}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <printf>
                  more_env: []
                  words: [
                    {<printf>}
                    {(DQ <'%s'> <Id.Lit_BadBackslash '\\'> <n>)}
                    {(DQ ($ Id.VSub_DollarName text))}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <Id.Redir_Great '>'>
      more_env: []
      words: []
      redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<empty>})]
      do_fork: F
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<PIPE>}
        {(SQ <'empty dump'>)}
        {
          (SQ <'\n'> <'\treinit_git &&\n'> <'\techo "SVN-fs-dump-format-version: 2" >input &&\n'> 
            <'\ttry_dump input\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<PIPE>}
        {(SQ <'v4 dumps not supported'>)}
        {
          (SQ <'\n'> <'\treinit_git &&\n'> <'\techo "SVN-fs-dump-format-version: 4" >v4.dump &&\n'> 
            <'\ttry_dump v4.dump must_fail\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_failure>
      more_env: []
      words: [
        {<test_expect_failure>}
        {<PIPE>}
        {(SQ <'empty revision'>)}
        {
          (SQ <'\n'> <'\treinit_git &&\n'> 
            <'\tprintf "rev <nobody, nobody@local>: %s\\n" "" "" >expect &&\n'> <'\tcat >emptyrev.dump <<-\\EOF &&\n'> <'\tSVN-fs-dump-format-version: 3\n'> <'\n'> 
            <'\tRevision-number: 1\n'> <'\tProp-content-length: 0\n'> <'\tContent-length: 0\n'> <'\n'> <'\tRevision-number: 2\n'> 
            <'\tProp-content-length: 0\n'> <'\tContent-length: 0\n'> <'\n'> <'\tEOF\n'> <'\ttry_dump emptyrev.dump &&\n'> 
            <'\tgit log -p --format="rev <%an, %ae>: %s" HEAD >actual &&\n'> <'\ttest_cmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<PIPE>}
        {(SQ <'empty properties'>)}
        {
          (SQ <'\n'> <'\treinit_git &&\n'> 
            <'\tprintf "rev <nobody, nobody@local>: %s\\n" "" "" >expect &&\n'> <'\tcat >emptyprop.dump <<-\\EOF &&\n'> <'\tSVN-fs-dump-format-version: 3\n'> <'\n'> 
            <'\tRevision-number: 1\n'> <'\tProp-content-length: 10\n'> <'\tContent-length: 10\n'> <'\n'> <'\tPROPS-END\n'> <'\n'> 
            <'\tRevision-number: 2\n'> <'\tProp-content-length: 10\n'> <'\tContent-length: 10\n'> <'\n'> <'\tPROPS-END\n'> <'\tEOF\n'> 
            <'\ttry_dump emptyprop.dump &&\n'> <'\tgit log -p --format="rev <%an, %ae>: %s" HEAD >actual &&\n'> <'\ttest_cmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<PIPE>}
        {(SQ <'author name and commit message'>)}
        {
          (SQ <'\n'> <'\treinit_git &&\n'> 
            <'\techo "<author@example.com, author@example.com@local>" >expect.author &&\n'> <'\tcat >message <<-\\EOF &&\n'> <'\tA concise summary of the change\n'> <'\n'> 
            <'\tA detailed description of the change, why it is needed, what\n'> <'\twas broken and why applying this is the best course of action.\n'> <'\n'> <'\t* file.c\n'> 
            <'\t    Details pertaining to an individual file.\n'> <'\tEOF\n'> <'\t{\n'> <'\t\tproperties \\\n'> <'\t\t\tsvn:author author@example.com \\\n'> 
            <'\t\t\tsvn:log "$(cat message)" &&\n'> <'\t\techo PROPS-END\n'> <'\t} >props &&\n'> <'\t{\n'> <'\t\techo "SVN-fs-dump-format-version: 3" &&\n'> 
            <'\t\techo &&\n'> <'\t\techo "Revision-number: 1" &&\n'> <'\t\techo Prop-content-length: $(wc -c <props) &&\n'> 
            <'\t\techo Content-length: $(wc -c <props) &&\n'> <'\t\techo &&\n'> <'\t\tcat props\n'> <'\t} >log.dump &&\n'> <'\ttry_dump log.dump &&\n'> 
            <'\tgit log -p --format="%B" HEAD >actual.log &&\n'> <'\tgit log --format="<%an, %ae>" >actual.author &&\n'> <'\ttest_cmp message actual.log &&\n'> 
            <'\ttest_cmp expect.author actual.author\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<PIPE>}
        {(SQ <'unsupported properties are ignored'>)}
        {
          (SQ <'\n'> <'\treinit_git &&\n'> <'\techo author >expect &&\n'> 
            <'\tcat >extraprop.dump <<-\\EOF &&\n'> <'\tSVN-fs-dump-format-version: 3\n'> <'\n'> <'\tRevision-number: 1\n'> <'\tProp-content-length: 56\n'> 
            <'\tContent-length: 56\n'> <'\n'> <'\tK 8\n'> <'\tnonsense\n'> <'\tV 1\n'> <'\ty\n'> <'\tK 10\n'> <'\tsvn:author\n'> <'\tV 6\n'> 
            <'\tauthor\n'> <'\tPROPS-END\n'> <'\tEOF\n'> <'\ttry_dump extraprop.dump &&\n'> 
            <'\tgit log -p --format=%an HEAD >actual &&\n'> <'\ttest_cmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_failure>
      more_env: []
      words: [
        {<test_expect_failure>}
        {<PIPE>}
        {(SQ <'timestamp and empty file'>)}
        {
          (SQ <'\n'> <'\techo author@example.com >expect.author &&\n'> 
            <'\techo 1999-01-01 >expect.date &&\n'> <'\techo file >expect.files &&\n'> <'\treinit_git &&\n'> <'\t{\n'> <'\t\tproperties \\\n'> 
            <'\t\t\tsvn:author author@example.com \\\n'> <'\t\t\tsvn:date "1999-01-01T00:01:002.000000Z" \\\n'> <'\t\t\tsvn:log "add empty file" &&\n'> 
            <'\t\techo PROPS-END\n'> <'\t} >props &&\n'> <'\t{\n'> <'\t\tcat <<-EOF &&\n'> <'\t\tSVN-fs-dump-format-version: 3\n'> <'\n'> 
            <'\t\tRevision-number: 1\n'> <'\t\tEOF\n'> <'\t\techo Prop-content-length: $(wc -c <props) &&\n'> 
            <'\t\techo Content-length: $(wc -c <props) &&\n'> <'\t\techo &&\n'> <'\t\tcat props &&\n'> <'\t\tcat <<-\\EOF\n'> <'\n'> <'\t\tNode-path: empty-file\n'> 
            <'\t\tNode-kind: file\n'> <'\t\tNode-action: add\n'> <'\t\tContent-length: 0\n'> <'\n'> <'\t\tEOF\n'> <'\t} >emptyfile.dump &&\n'> 
            <'\ttry_dump emptyfile.dump &&\n'> <'\tgit log --format=%an HEAD >actual.author &&\n'> 
            <'\tgit log --date=short --format=%ad HEAD >actual.date &&\n'> <'\tgit ls-tree -r --name-only HEAD >actual.files &&\n'> 
            <'\ttest_cmp expect.author actual.author &&\n'> <'\ttest_cmp expect.date actual.date &&\n'> <'\ttest_cmp expect.files actual.files &&\n'> 
            <'\tgit checkout HEAD empty-file &&\n'> <'\ttest_cmp empty file\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<PIPE>}
        {(SQ <'directory with files'>)}
        {
          (SQ <'\n'> <'\treinit_git &&\n'> 
            <'\tprintf "%s\\n" directory/file1 directory/file2 >expect.files &&\n'> <'\techo hi >hi &&\n'> <'\techo hello >hello &&\n'> <'\t{\n'> <'\t\tproperties \\\n'> 
            <'\t\t\tsvn:author author@example.com \\\n'> <'\t\t\tsvn:date "1999-02-01T00:01:002.000000Z" \\\n'> 
            <'\t\t\tsvn:log "add directory with some files in it" &&\n'> <'\t\techo PROPS-END\n'> <'\t} >props &&\n'> <'\t{\n'> <'\t\tcat <<-EOF &&\n'> 
            <'\t\tSVN-fs-dump-format-version: 3\n'> <'\n'> <'\t\tRevision-number: 1\n'> <'\t\tEOF\n'> <'\t\techo Prop-content-length: $(wc -c <props) &&\n'> 
            <'\t\techo Content-length: $(wc -c <props) &&\n'> <'\t\techo &&\n'> <'\t\tcat props &&\n'> <'\t\tcat <<-\\EOF &&\n'> <'\n'> <'\t\tNode-path: directory\n'> 
            <'\t\tNode-kind: dir\n'> <'\t\tNode-action: add\n'> <'\t\tProp-content-length: 10\n'> <'\t\tContent-length: 10\n'> <'\n'> 
            <'\t\tPROPS-END\n'> <'\n'> <'\t\tNode-path: directory/file1\n'> <'\t\tNode-kind: file\n'> <'\t\tNode-action: add\n'> 
            <'\t\tEOF\n'> <'\t\ttext_no_props hello &&\n'> <'\t\tcat <<-\\EOF &&\n'> <'\t\tNode-path: directory/file2\n'> 
            <'\t\tNode-kind: file\n'> <'\t\tNode-action: add\n'> <'\t\tEOF\n'> <'\t\ttext_no_props hi\n'> <'\t} >directory.dump &&\n'> 
            <'\ttry_dump directory.dump &&\n'> <'\n'> <'\tgit ls-tree -r --name-only HEAD >actual.files &&\n'> <'\tgit checkout HEAD directory &&\n'> 
            <'\ttest_cmp expect.files actual.files &&\n'> <'\ttest_cmp hello directory/file1 &&\n'> <'\ttest_cmp hi directory/file2\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<PIPE>}
        {(SQ <'branch name with backslash'>)}
        {
          (SQ <'\n'> <'\treinit_git &&\n'> <'\tsort <<-\\EOF >expect.branch-files &&\n'> 
            <'\ttrunk/file1\n'> <'\ttrunk/file2\n'> <'\t"branches/UpdateFOPto094\\\\/file1"\n'> 
            <'\t"branches/UpdateFOPto094\\\\/file2"\n'> <'\tEOF\n'> <'\n'> <'\techo hi >hi &&\n'> <'\techo hello >hello &&\n'> <'\t{\n'> <'\t\tproperties \\\n'> 
            <'\t\t\tsvn:author author@example.com \\\n'> <'\t\t\tsvn:date "1999-02-02T00:01:02.000000Z" \\\n'> 
            <'\t\t\tsvn:log "add directory with some files in it" &&\n'> <'\t\techo PROPS-END\n'> <'\t} >props.setup &&\n'> <'\t{\n'> <'\t\tproperties \\\n'> 
            <'\t\t\tsvn:author brancher@example.com \\\n'> <'\t\t\tsvn:date "2007-12-06T21:38:34.000000Z" \\\n'> 
            <'\t\t\tsvn:log "Updating fop to .94 and adjust fo-stylesheets" &&\n'> <'\t\techo PROPS-END\n'> <'\t} >props.branch &&\n'> <'\t{\n'> <'\t\tcat <<-EOF &&\n'> 
            <'\t\tSVN-fs-dump-format-version: 3\n'> <'\n'> <'\t\tRevision-number: 1\n'> <'\t\tEOF\n'> 
            <'\t\techo Prop-content-length: $(wc -c <props.setup) &&\n'> <'\t\techo Content-length: $(wc -c <props.setup) &&\n'> <'\t\techo &&\n'> <'\t\tcat props.setup &&\n'> 
            <'\t\tcat <<-\\EOF &&\n'> <'\n'> <'\t\tNode-path: trunk\n'> <'\t\tNode-kind: dir\n'> <'\t\tNode-action: add\n'> 
            <'\t\tProp-content-length: 10\n'> <'\t\tContent-length: 10\n'> <'\n'> <'\t\tPROPS-END\n'> <'\n'> <'\t\tNode-path: branches\n'> 
            <'\t\tNode-kind: dir\n'> <'\t\tNode-action: add\n'> <'\t\tProp-content-length: 10\n'> <'\t\tContent-length: 10\n'> <'\n'> 
            <'\t\tPROPS-END\n'> <'\n'> <'\t\tNode-path: trunk/file1\n'> <'\t\tNode-kind: file\n'> <'\t\tNode-action: add\n'> 
            <'\t\tEOF\n'> <'\t\ttext_no_props hello &&\n'> <'\t\tcat <<-\\EOF &&\n'> <'\t\tNode-path: trunk/file2\n'> 
            <'\t\tNode-kind: file\n'> <'\t\tNode-action: add\n'> <'\t\tEOF\n'> <'\t\ttext_no_props hi &&\n'> <'\t\tcat <<-\\EOF &&\n'> <'\n'> 
            <'\t\tRevision-number: 2\n'> <'\t\tEOF\n'> <'\t\techo Prop-content-length: $(wc -c <props.branch) &&\n'> 
            <'\t\techo Content-length: $(wc -c <props.branch) &&\n'> <'\t\techo &&\n'> <'\t\tcat props.branch &&\n'> <'\t\tcat <<-\\EOF\n'> <'\n'> 
            <'\t\tNode-path: branches/UpdateFOPto094\\\n'> <'\t\tNode-kind: dir\n'> <'\t\tNode-action: add\n'> <'\t\tNode-copyfrom-rev: 1\n'> 
            <'\t\tNode-copyfrom-path: trunk\n'> <'\n'> <'\t\tNode-kind: dir\n'> <'\t\tNode-action: add\n'> <'\t\tProp-content-length: 34\n'> 
            <'\t\tContent-length: 34\n'> <'\n'> <'\t\tK 13\n'> <'\t\tsvn:mergeinfo\n'> <'\t\tV 0\n'> <'\n'> <'\t\tPROPS-END\n'> <'\t\tEOF\n'> 
            <'\t} >branch.dump &&\n'> <'\ttry_dump branch.dump &&\n'> <'\n'> <'\tgit ls-tree -r --name-only HEAD |\n'> 
            <'\tsort >actual.branch-files &&\n'> <'\ttest_cmp expect.branch-files actual.branch-files\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<PIPE>}
        {(SQ <'node without action'>)}
        {
          (SQ <'\n'> <'\treinit_git &&\n'> <'\tcat >inaction.dump <<-\\EOF &&\n'> 
            <'\tSVN-fs-dump-format-version: 3\n'> <'\n'> <'\tRevision-number: 1\n'> <'\tProp-content-length: 10\n'> <'\tContent-length: 10\n'> <'\n'> 
            <'\tPROPS-END\n'> <'\n'> <'\tNode-path: directory\n'> <'\tNode-kind: dir\n'> <'\tProp-content-length: 10\n'> 
            <'\tContent-length: 10\n'> <'\n'> <'\tPROPS-END\n'> <'\tEOF\n'> <'\ttry_dump inaction.dump must_fail\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<PIPE>}
        {(SQ <'action: add node without text'>)}
        {
          (SQ <'\n'> <'\treinit_git &&\n'> <'\tcat >textless.dump <<-\\EOF &&\n'> 
            <'\tSVN-fs-dump-format-version: 3\n'> <'\n'> <'\tRevision-number: 1\n'> <'\tProp-content-length: 10\n'> <'\tContent-length: 10\n'> <'\n'> 
            <'\tPROPS-END\n'> <'\n'> <'\tNode-path: textless\n'> <'\tNode-kind: file\n'> <'\tNode-action: add\n'> 
            <'\tProp-content-length: 10\n'> <'\tContent-length: 10\n'> <'\n'> <'\tPROPS-END\n'> <'\tEOF\n'> <'\ttry_dump textless.dump must_fail\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_failure>
      more_env: []
      words: [
        {<test_expect_failure>}
        {<PIPE>}
        {(SQ <'change file mode but keep old content'>)}
        {
          (SQ <'\n'> <'\treinit_git &&\n'> <'\tcat >expect <<-\\EOF &&\n'> <'\tOBJID\n'> 
            <'\t:120000 100644 OBJID OBJID T\tgreeting\n'> <'\tOBJID\n'> <'\t:100644 120000 OBJID OBJID T\tgreeting\n'> <'\tOBJID\n'> 
            <'\t:000000 100644 OBJID OBJID A\tgreeting\n'> <'\tEOF\n'> <'\techo "link hello" >expect.blob &&\n'> <'\techo hello >hello &&\n'> 
            <'\tcat >filemode.dump <<-\\EOF &&\n'> <'\tSVN-fs-dump-format-version: 3\n'> <'\n'> <'\tRevision-number: 1\n'> <'\tProp-content-length: 10\n'> 
            <'\tContent-length: 10\n'> <'\n'> <'\tPROPS-END\n'> <'\n'> <'\tNode-path: greeting\n'> <'\tNode-kind: file\n'> 
            <'\tNode-action: add\n'> <'\tProp-content-length: 10\n'> <'\tText-content-length: 11\n'> <'\tContent-length: 21\n'> <'\n'> 
            <'\tPROPS-END\n'> <'\tlink hello\n'> <'\n'> <'\tRevision-number: 2\n'> <'\tProp-content-length: 10\n'> 
            <'\tContent-length: 10\n'> <'\n'> <'\tPROPS-END\n'> <'\n'> <'\tNode-path: greeting\n'> <'\tNode-kind: file\n'> 
            <'\tNode-action: change\n'> <'\tProp-content-length: 33\n'> <'\tContent-length: 33\n'> <'\n'> <'\tK 11\n'> <'\tsvn:special\n'> 
            <'\tV 1\n'> <'\t*\n'> <'\tPROPS-END\n'> <'\n'> <'\tRevision-number: 3\n'> <'\tProp-content-length: 10\n'> 
            <'\tContent-length: 10\n'> <'\n'> <'\tPROPS-END\n'> <'\n'> <'\tNode-path: greeting\n'> <'\tNode-kind: file\n'> 
            <'\tNode-action: change\n'> <'\tProp-content-length: 10\n'> <'\tContent-length: 10\n'> <'\n'> <'\tPROPS-END\n'> <'\tEOF\n'> 
            <'\ttry_dump filemode.dump &&\n'> <'\t{\n'> <'\t\tgit rev-list HEAD |\n'> <'\t\tgit diff-tree --root --stdin |\n'> 
            <'\t\tsed "s/$_x40/OBJID/g"\n'> <'\t} >actual &&\n'> <'\tgit show HEAD:greeting >actual.blob &&\n'> 
            <'\tgit show HEAD^:greeting >actual.target &&\n'> <'\ttest_cmp expect actual &&\n'> <'\ttest_cmp expect.blob actual.blob &&\n'> 
            <'\ttest_cmp hello actual.target\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<PIPE>}
        {(SQ <'NUL in property value'>)}
        {
          (SQ <'\n'> <'\treinit_git &&\n'> <'\techo "commit message" >expect.message &&\n'> <'\t{\n'> 
            <'\t\tproperties \\\n'> <'\t\t\tunimportant "something with a NUL (Q)" \\\n'> <'\t\t\tsvn:log "commit message"&&\n'> 
            <'\t\techo PROPS-END\n'> <'\t} |\n'> <'\tq_to_nul >props &&\n'> <'\t{\n'> <'\t\tcat <<-\\EOF &&\n'> 
            <'\t\tSVN-fs-dump-format-version: 3\n'> <'\n'> <'\t\tRevision-number: 1\n'> <'\t\tEOF\n'> <'\t\techo Prop-content-length: $(wc -c <props) &&\n'> 
            <'\t\techo Content-length: $(wc -c <props) &&\n'> <'\t\techo &&\n'> <'\t\tcat props\n'> <'\t} >nulprop.dump &&\n'> <'\ttry_dump nulprop.dump &&\n'> 
            <'\tgit diff-tree --always -s --format=%s HEAD >actual.message &&\n'> <'\ttest_cmp expect.message actual.message\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<PIPE>}
        {(SQ <'NUL in log message, file content, and property name'>)}
        {
          (SQ <'\n'> <'\t# Caveat: svnadmin 1.6.16 (r1073529) truncates at \\0 in the\n'> 
            <'\t# svn:specialQnotreally example.\n'> <'\treinit_git &&\n'> <'\tcat >expect <<-\\EOF &&\n'> <'\tOBJID\n'> 
            <'\t:100644 100644 OBJID OBJID M\tgreeting\n'> <'\tOBJID\n'> <'\t:000000 100644 OBJID OBJID A\tgreeting\n'> <'\tEOF\n'> 
            <'\tprintf "\\n%s\\n" "something with an ASCII NUL (Q)" >expect.message &&\n'> <'\tprintf "%s\\n" "helQo" >expect.hello1 &&\n'> <'\tprintf "%s\\n" "link hello" >expect.hello2 &&\n'> 
            <'\t{\n'> <'\t\tproperties svn:log "something with an ASCII NUL (Q)" &&\n'> <'\t\techo PROPS-END\n'> <'\t} |\n'> 
            <'\tq_to_nul >props &&\n'> <'\t{\n'> <'\t\tq_to_nul <<-\\EOF &&\n'> <'\t\tSVN-fs-dump-format-version: 3\n'> <'\n'> 
            <'\t\tRevision-number: 1\n'> <'\t\tProp-content-length: 10\n'> <'\t\tContent-length: 10\n'> <'\n'> <'\t\tPROPS-END\n'> <'\n'> 
            <'\t\tNode-path: greeting\n'> <'\t\tNode-kind: file\n'> <'\t\tNode-action: add\n'> <'\t\tProp-content-length: 10\n'> 
            <'\t\tText-content-length: 6\n'> <'\t\tContent-length: 16\n'> <'\n'> <'\t\tPROPS-END\n'> <'\t\thelQo\n'> <'\n'> 
            <'\t\tRevision-number: 2\n'> <'\t\tEOF\n'> <'\t\techo Prop-content-length: $(wc -c <props) &&\n'> 
            <'\t\techo Content-length: $(wc -c <props) &&\n'> <'\t\techo &&\n'> <'\t\tcat props &&\n'> <'\t\tq_to_nul <<-\\EOF\n'> <'\n'> <'\t\tNode-path: greeting\n'> 
            <'\t\tNode-kind: file\n'> <'\t\tNode-action: change\n'> <'\t\tProp-content-length: 43\n'> <'\t\tText-content-length: 11\n'> 
            <'\t\tContent-length: 54\n'> <'\n'> <'\t\tK 21\n'> <'\t\tsvn:specialQnotreally\n'> <'\t\tV 1\n'> <'\t\t*\n'> <'\t\tPROPS-END\n'> 
            <'\t\tlink hello\n'> <'\t\tEOF\n'> <'\t} >8bitclean.dump &&\n'> <'\ttry_dump 8bitclean.dump &&\n'> <'\t{\n'> 
            <'\t\tgit rev-list HEAD |\n'> <'\t\tgit diff-tree --root --stdin |\n'> <'\t\tsed "s/$_x40/OBJID/g"\n'> <'\t} >actual &&\n'> <'\t{\n'> 
            <'\t\tgit cat-file commit HEAD | nul_to_q &&\n'> <'\t\techo\n'> <'\t} |\n'> <'\tsed -ne "/^\\$/,\\$ p" >actual.message &&\n'> 
            <'\tgit cat-file blob HEAD^:greeting | nul_to_q >actual.hello1 &&\n'> <'\tgit cat-file blob HEAD:greeting | nul_to_q >actual.hello2 &&\n'> <'\ttest_cmp expect actual &&\n'> 
            <'\ttest_cmp expect.message actual.message &&\n'> <'\ttest_cmp expect.hello1 actual.hello1 &&\n'> <'\ttest_cmp expect.hello2 actual.hello2\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<PIPE>}
        {(SQ <'change file mode and reiterate content'>)}
        {
          (SQ <'\n'> <'\treinit_git &&\n'> <'\tcat >expect <<-\\EOF &&\n'> <'\tOBJID\n'> 
            <'\t:120000 100644 OBJID OBJID T\tgreeting\n'> <'\tOBJID\n'> <'\t:100644 120000 OBJID OBJID T\tgreeting\n'> <'\tOBJID\n'> 
            <'\t:000000 100644 OBJID OBJID A\tgreeting\n'> <'\tEOF\n'> <'\techo "link hello" >expect.blob &&\n'> <'\techo hello >hello &&\n'> 
            <'\tcat >filemode2.dump <<-\\EOF &&\n'> <'\tSVN-fs-dump-format-version: 3\n'> <'\n'> <'\tRevision-number: 1\n'> <'\tProp-content-length: 10\n'> 
            <'\tContent-length: 10\n'> <'\n'> <'\tPROPS-END\n'> <'\n'> <'\tNode-path: greeting\n'> <'\tNode-kind: file\n'> 
            <'\tNode-action: add\n'> <'\tProp-content-length: 10\n'> <'\tText-content-length: 11\n'> <'\tContent-length: 21\n'> <'\n'> 
            <'\tPROPS-END\n'> <'\tlink hello\n'> <'\n'> <'\tRevision-number: 2\n'> <'\tProp-content-length: 10\n'> 
            <'\tContent-length: 10\n'> <'\n'> <'\tPROPS-END\n'> <'\n'> <'\tNode-path: greeting\n'> <'\tNode-kind: file\n'> 
            <'\tNode-action: change\n'> <'\tProp-content-length: 33\n'> <'\tText-content-length: 11\n'> <'\tContent-length: 44\n'> <'\n'> 
            <'\tK 11\n'> <'\tsvn:special\n'> <'\tV 1\n'> <'\t*\n'> <'\tPROPS-END\n'> <'\tlink hello\n'> <'\n'> 
            <'\tRevision-number: 3\n'> <'\tProp-content-length: 10\n'> <'\tContent-length: 10\n'> <'\n'> <'\tPROPS-END\n'> <'\n'> 
            <'\tNode-path: greeting\n'> <'\tNode-kind: file\n'> <'\tNode-action: change\n'> <'\tProp-content-length: 10\n'> 
            <'\tText-content-length: 11\n'> <'\tContent-length: 21\n'> <'\n'> <'\tPROPS-END\n'> <'\tlink hello\n'> <'\tEOF\n'> 
            <'\ttry_dump filemode2.dump &&\n'> <'\t{\n'> <'\t\tgit rev-list HEAD |\n'> <'\t\tgit diff-tree --root --stdin |\n'> 
            <'\t\tsed "s/$_x40/OBJID/g"\n'> <'\t} >actual &&\n'> <'\tgit show HEAD:greeting >actual.blob &&\n'> 
            <'\tgit show HEAD^:greeting >actual.target &&\n'> <'\ttest_cmp expect actual &&\n'> <'\ttest_cmp expect.blob actual.blob &&\n'> 
            <'\ttest_cmp hello actual.target\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<PIPE>}
        {(SQ <'deltas supported'>)}
        {
          (SQ <'\n'> <'\treinit_git &&\n'> <'\t{\n'> <'\t\t# (old) h + (inline) ello + (old) \\n\n'> 
            <'\t\tprintf "SVNQ%b%b%s" "Q\\003\\006\\005\\004" "\\001Q\\0204\\001\\002" "ello" |\n'> <'\t\tq_to_nul\n'> <'\t} >delta &&\n'> <'\t{\n'> <'\t\tproperties \\\n'> 
            <'\t\t\tsvn:author author@example.com \\\n'> <'\t\t\tsvn:date "1999-01-05T00:01:002.000000Z" \\\n'> <'\t\t\tsvn:log "add greeting" &&\n'> 
            <'\t\techo PROPS-END\n'> <'\t} >props &&\n'> <'\t{\n'> <'\t\tproperties \\\n'> <'\t\t\tsvn:author author@example.com \\\n'> 
            <'\t\t\tsvn:date "1999-01-06T00:01:002.000000Z" \\\n'> <'\t\t\tsvn:log "change it" &&\n'> <'\t\techo PROPS-END\n'> <'\t} >props2 &&\n'> <'\t{\n'> 
            <'\t\techo SVN-fs-dump-format-version: 3 &&\n'> <'\t\techo &&\n'> <'\t\techo Revision-number: 1 &&\n'> 
            <'\t\techo Prop-content-length: $(wc -c <props) &&\n'> <'\t\techo Content-length: $(wc -c <props) &&\n'> <'\t\techo &&\n'> <'\t\tcat props &&\n'> 
            <'\t\tcat <<-\\EOF &&\n'> <'\n'> <'\t\tNode-path: hello\n'> <'\t\tNode-kind: file\n'> <'\t\tNode-action: add\n'> 
            <'\t\tProp-content-length: 10\n'> <'\t\tText-content-length: 3\n'> <'\t\tContent-length: 13\n'> <'\n'> <'\t\tPROPS-END\n'> <'\t\thi\n'> 
            <'\n'> <'\t\tEOF\n'> <'\t\techo Revision-number: 2 &&\n'> 
            <'\t\techo Prop-content-length: $(wc -c <props2) &&\n'> <'\t\techo Content-length: $(wc -c <props2) &&\n'> <'\t\techo &&\n'> <'\t\tcat props2 &&\n'> 
            <'\t\tcat <<-\\EOF &&\n'> <'\n'> <'\t\tNode-path: hello\n'> <'\t\tNode-kind: file\n'> <'\t\tNode-action: change\n'> 
            <'\t\tText-delta: true\n'> <'\t\tProp-content-length: 10\n'> <'\t\tEOF\n'> <'\t\techo Text-content-length: $(wc -c <delta) &&\n'> 
            <'\t\techo Content-length: $((10 + $(wc -c <delta))) &&\n'> <'\t\techo &&\n'> <'\t\techo PROPS-END &&\n'> <'\t\tcat delta\n'> <'\t} >delta.dump &&\n'> 
            <'\ttry_dump delta.dump\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<PIPE>}
        {(SQ <'property deltas supported'>)}
        {
          (SQ <'\n'> <'\treinit_git &&\n'> <'\tcat >expect <<-\\EOF &&\n'> <'\tOBJID\n'> 
            <'\t:100755 100644 OBJID OBJID M\tscript.sh\n'> <'\tEOF\n'> <'\t{\n'> <'\t\tproperties \\\n'> <'\t\t\tsvn:author author@example.com \\\n'> 
            <'\t\t\tsvn:date "1999-03-06T00:01:002.000000Z" \\\n'> <'\t\t\tsvn:log "make an executable, or chmod -x it" &&\n'> <'\t\techo PROPS-END\n'> 
            <'\t} >revprops &&\n'> <'\t{\n'> <'\t\techo SVN-fs-dump-format-version: 3 &&\n'> <'\t\techo &&\n'> 
            <'\t\techo Revision-number: 1 &&\n'> <'\t\techo Prop-content-length: $(wc -c <revprops) &&\n'> 
            <'\t\techo Content-length: $(wc -c <revprops) &&\n'> <'\t\techo &&\n'> <'\t\tcat revprops &&\n'> <'\t\techo &&\n'> <'\t\tcat <<-\\EOF &&\n'> 
            <'\t\tNode-path: script.sh\n'> <'\t\tNode-kind: file\n'> <'\t\tNode-action: add\n'> <'\t\tText-content-length: 0\n'> 
            <'\t\tProp-content-length: 39\n'> <'\t\tContent-length: 39\n'> <'\n'> <'\t\tK 14\n'> <'\t\tsvn:executable\n'> <'\t\tV 4\n'> <'\t\ttrue\n'> 
            <'\t\tPROPS-END\n'> <'\n'> <'\t\tEOF\n'> <'\t\techo Revision-number: 2 &&\n'> 
            <'\t\techo Prop-content-length: $(wc -c <revprops) &&\n'> <'\t\techo Content-length: $(wc -c <revprops) &&\n'> <'\t\techo &&\n'> <'\t\tcat revprops &&\n'> 
            <'\t\techo &&\n'> <'\t\tcat <<-\\EOF\n'> <'\t\tNode-path: script.sh\n'> <'\t\tNode-kind: file\n'> 
            <'\t\tNode-action: change\n'> <'\t\tProp-delta: true\n'> <'\t\tProp-content-length: 30\n'> <'\t\tContent-length: 30\n'> <'\n'> 
            <'\t\tD 14\n'> <'\t\tsvn:executable\n'> <'\t\tPROPS-END\n'> <'\t\tEOF\n'> <'\t} >propdelta.dump &&\n'> 
            <'\ttry_dump propdelta.dump &&\n'> <'\t{\n'> <'\t\tgit rev-list HEAD |\n'> <'\t\tgit diff-tree --stdin |\n'> 
            <'\t\tsed "s/$_x40/OBJID/g"\n'> <'\t} >actual &&\n'> <'\ttest_cmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<PIPE>}
        {(SQ <'properties on /'>)}
        {
          (SQ <'\n'> <'\treinit_git &&\n'> <'\tcat <<-\\EOF >expect &&\n'> <'\tOBJID\n'> <'\tOBJID\n'> 
            <'\t:000000 100644 OBJID OBJID A\tgreeting\n'> <'\tEOF\n'> <'\tsed -e "s/X$//" <<-\\EOF >changeroot.dump &&\n'> <'\tSVN-fs-dump-format-version: 3\n'> 
            <'\n'> <'\tRevision-number: 1\n'> <'\tProp-content-length: 10\n'> <'\tContent-length: 10\n'> <'\n'> 
            <'\tPROPS-END\n'> <'\n'> <'\tNode-path: greeting\n'> <'\tNode-kind: file\n'> <'\tNode-action: add\n'> 
            <'\tText-content-length: 0\n'> <'\tProp-content-length: 10\n'> <'\tContent-length: 10\n'> <'\n'> <'\tPROPS-END\n'> <'\n'> 
            <'\tRevision-number: 2\n'> <'\tProp-content-length: 10\n'> <'\tContent-length: 10\n'> <'\n'> <'\tPROPS-END\n'> <'\n'> 
            <'\tNode-path: X\n'> <'\tNode-kind: dir\n'> <'\tNode-action: change\n'> <'\tProp-delta: true\n'> 
            <'\tProp-content-length: 43\n'> <'\tContent-length: 43\n'> <'\n'> <'\tK 10\n'> <'\tsvn:ignore\n'> <'\tV 11\n'> <'\tbuild-area\n'> <'\n'> 
            <'\tPROPS-END\n'> <'\tEOF\n'> <'\ttry_dump changeroot.dump &&\n'> <'\t{\n'> <'\t\tgit rev-list HEAD |\n'> 
            <'\t\tgit diff-tree --root --always --stdin |\n'> <'\t\tsed "s/$_x40/OBJID/g"\n'> <'\t} >actual &&\n'> <'\ttest_cmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<PIPE>}
        {(SQ <'deltas for typechange'>)}
        {
          (SQ <'\n'> <'\treinit_git &&\n'> <'\tcat >expect <<-\\EOF &&\n'> <'\tOBJID\n'> 
            <'\t:120000 100644 OBJID OBJID T\ttest-file\n'> <'\tOBJID\n'> <'\t:100755 120000 OBJID OBJID T\ttest-file\n'> <'\tOBJID\n'> 
            <'\t:000000 100755 OBJID OBJID A\ttest-file\n'> <'\tEOF\n'> <'\tcat >deleteprop.dump <<-\\EOF &&\n'> <'\tSVN-fs-dump-format-version: 3\n'> <'\n'> 
            <'\tRevision-number: 1\n'> <'\tProp-content-length: 10\n'> <'\tContent-length: 10\n'> <'\n'> <'\tPROPS-END\n'> <'\n'> 
            <'\tNode-path: test-file\n'> <'\tNode-kind: file\n'> <'\tNode-action: add\n'> <'\tProp-delta: true\n'> 
            <'\tProp-content-length: 35\n'> <'\tText-content-length: 17\n'> <'\tContent-length: 52\n'> <'\n'> <'\tK 14\n'> <'\tsvn:executable\n'> 
            <'\tV 0\n'> <'\n'> <'\tPROPS-END\n'> <'\tlink testing 123\n'> <'\n'> <'\tRevision-number: 2\n'> 
            <'\tProp-content-length: 10\n'> <'\tContent-length: 10\n'> <'\n'> <'\tPROPS-END\n'> <'\n'> <'\tNode-path: test-file\n'> 
            <'\tNode-kind: file\n'> <'\tNode-action: change\n'> <'\tProp-delta: true\n'> <'\tProp-content-length: 53\n'> 
            <'\tText-content-length: 17\n'> <'\tContent-length: 70\n'> <'\n'> <'\tK 11\n'> <'\tsvn:special\n'> <'\tV 1\n'> <'\t*\n'> <'\tD 14\n'> 
            <'\tsvn:executable\n'> <'\tPROPS-END\n'> <'\tlink testing 231\n'> <'\n'> <'\tRevision-number: 3\n'> 
            <'\tProp-content-length: 10\n'> <'\tContent-length: 10\n'> <'\n'> <'\tPROPS-END\n'> <'\n'> <'\tNode-path: test-file\n'> 
            <'\tNode-kind: file\n'> <'\tNode-action: change\n'> <'\tProp-delta: true\n'> <'\tProp-content-length: 27\n'> 
            <'\tText-content-length: 17\n'> <'\tContent-length: 44\n'> <'\n'> <'\tD 11\n'> <'\tsvn:special\n'> <'\tPROPS-END\n'> 
            <'\tlink testing 321\n'> <'\tEOF\n'> <'\ttry_dump deleteprop.dump &&\n'> <'\t{\n'> <'\t\tgit rev-list HEAD |\n'> 
            <'\t\tgit diff-tree --root --stdin |\n'> <'\t\tsed "s/$_x40/OBJID/g"\n'> <'\t} >actual &&\n'> <'\ttest_cmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<PIPE>}
        {(SQ <'deltas need not consume the whole preimage'>)}
        {
          (SQ <'\n'> <'\treinit_git &&\n'> <'\tcat >expect <<-\\EOF &&\n'> <'\tOBJID\n'> 
            <'\t:120000 100644 OBJID OBJID T\tpostimage\n'> <'\tOBJID\n'> <'\t:100644 120000 OBJID OBJID T\tpostimage\n'> <'\tOBJID\n'> 
            <'\t:000000 100644 OBJID OBJID A\tpostimage\n'> <'\tEOF\n'> <'\techo "first preimage" >expect.1 &&\n'> <'\tprintf target >expect.2 &&\n'> 
            <'\tprintf lnk >expect.3 &&\n'> <'\t{\n'> <'\t\tprintf "SVNQ%b%b%b" "QQ\\017\\001\\017" "\\0217" "first preimage\\n" |\n'> 
            <'\t\tq_to_nul\n'> <'\t} >delta.1 &&\n'> <'\t{\n'> <'\t\tproperties svn:special "*" &&\n'> <'\t\techo PROPS-END\n'> 
            <'\t} >symlink.props &&\n'> <'\t{\n'> 
            <
'\t\tprintf "SVNQ%b%b%b" "Q\\002\\013\\004\\012" "\\0201\\001\\001\\0211" "lnk target" |\n'
            > <'\t\tq_to_nul\n'> <'\t} >delta.2 &&\n'> <'\t{\n'> 
            <'\t\tprintf "SVNQ%b%b" "Q\\004\\003\\004Q" "\\001Q\\002\\002" |\n'> <'\t\tq_to_nul\n'> <'\t} >delta.3 &&\n'> <'\t{\n'> <'\t\tcat <<-\\EOF &&\n'> 
            <'\t\tSVN-fs-dump-format-version: 3\n'> <'\n'> <'\t\tRevision-number: 1\n'> <'\t\tProp-content-length: 10\n'> <'\t\tContent-length: 10\n'> <'\n'> 
            <'\t\tPROPS-END\n'> <'\n'> <'\t\tNode-path: postimage\n'> <'\t\tNode-kind: file\n'> <'\t\tNode-action: add\n'> 
            <'\t\tText-delta: true\n'> <'\t\tProp-content-length: 10\n'> <'\t\tEOF\n'> 
            <'\t\techo Text-content-length: $(wc -c <delta.1) &&\n'> <'\t\techo Content-length: $((10 + $(wc -c <delta.1))) &&\n'> <'\t\techo &&\n'> 
            <'\t\techo PROPS-END &&\n'> <'\t\tcat delta.1 &&\n'> <'\t\tcat <<-\\EOF &&\n'> <'\n'> <'\t\tRevision-number: 2\n'> 
            <'\t\tProp-content-length: 10\n'> <'\t\tContent-length: 10\n'> <'\n'> <'\t\tPROPS-END\n'> <'\n'> <'\t\tNode-path: postimage\n'> 
            <'\t\tNode-kind: file\n'> <'\t\tNode-action: change\n'> <'\t\tText-delta: true\n'> <'\t\tEOF\n'> 
            <'\t\techo Prop-content-length: $(wc -c <symlink.props) &&\n'> <'\t\techo Text-content-length: $(wc -c <delta.2) &&\n'> 
            <'\t\techo Content-length: $(($(wc -c <symlink.props) + $(wc -c <delta.2))) &&\n'> <'\t\techo &&\n'> <'\t\tcat symlink.props &&\n'> <'\t\tcat delta.2 &&\n'> <'\t\tcat <<-\\EOF &&\n'> 
            <'\n'> <'\t\tRevision-number: 3\n'> <'\t\tProp-content-length: 10\n'> <'\t\tContent-length: 10\n'> <'\n'> 
            <'\t\tPROPS-END\n'> <'\n'> <'\t\tNode-path: postimage\n'> <'\t\tNode-kind: file\n'> <'\t\tNode-action: change\n'> 
            <'\t\tText-delta: true\n'> <'\t\tProp-content-length: 10\n'> <'\t\tEOF\n'> 
            <'\t\techo Text-content-length: $(wc -c <delta.3) &&\n'> <'\t\techo Content-length: $((10 + $(wc -c <delta.3))) &&\n'> <'\t\techo &&\n'> 
            <'\t\techo PROPS-END &&\n'> <'\t\tcat delta.3 &&\n'> <'\t\techo\n'> <'\t} >deltapartial.dump &&\n'> 
            <'\ttry_dump deltapartial.dump &&\n'> <'\t{\n'> <'\t\tgit rev-list HEAD |\n'> <'\t\tgit diff-tree --root --stdin |\n'> 
            <'\t\tsed "s/$_x40/OBJID/g"\n'> <'\t} >actual &&\n'> <'\ttest_cmp expect actual &&\n'> <'\tgit show HEAD:postimage >actual.3 &&\n'> 
            <'\tgit show HEAD^:postimage >actual.2 &&\n'> <'\tgit show HEAD^^:postimage >actual.1 &&\n'> <'\ttest_cmp expect.1 actual.1 &&\n'> 
            <'\ttest_cmp expect.2 actual.2 &&\n'> <'\ttest_cmp expect.3 actual.3\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<PIPE>}
        {(SQ <'no hang for delta trying to read past end of preimage'>)}
        {
          (SQ <'\n'> <'\treinit_git &&\n'> <'\t{\n'> <'\t\t# COPY 1\n'> 
            <'\t\tprintf "SVNQ%b%b" "Q\\001\\001\\002Q" "\\001Q" |\n'> <'\t\tq_to_nul\n'> <'\t} >greedy.delta &&\n'> <'\t{\n'> <'\t\tcat <<-\\EOF &&\n'> 
            <'\t\tSVN-fs-dump-format-version: 3\n'> <'\n'> <'\t\tRevision-number: 1\n'> <'\t\tProp-content-length: 10\n'> <'\t\tContent-length: 10\n'> <'\n'> 
            <'\t\tPROPS-END\n'> <'\n'> <'\t\tNode-path: bootstrap\n'> <'\t\tNode-kind: file\n'> <'\t\tNode-action: add\n'> 
            <'\t\tText-delta: true\n'> <'\t\tProp-content-length: 10\n'> <'\t\tEOF\n'> 
            <'\t\techo Text-content-length: $(wc -c <greedy.delta) &&\n'> <'\t\techo Content-length: $((10 + $(wc -c <greedy.delta))) &&\n'> <'\t\techo &&\n'> 
            <'\t\techo PROPS-END &&\n'> <'\t\tcat greedy.delta &&\n'> <'\t\techo\n'> <'\t} >greedydelta.dump &&\n'> 
            <'\ttry_dump greedydelta.dump must_fail might_fail\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'set up svn repo'>)}
        {
          (SQ <'\n'> <'\tsvnconf=$PWD/svnconf &&\n'> <'\tmkdir -p "$svnconf" &&\n'> <'\n'> <'\tif\n'> 
            <'\t\tsvnadmin -h >/dev/null 2>&1 &&\n'> <'\t\tsvnadmin create simple-svn &&\n'> 
            <'\t\tsvnadmin load simple-svn <"$TEST_DIRECTORY/t9135/svn.dump" &&\n'> <'\t\tsvn export --config-dir "$svnconf" "file://$PWD/simple-svn" simple-svnco\n'> <'\tthen\n'> 
            <'\t\ttest_set_prereq SVNREPO\n'> <'\tfi\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<SVNREPO> <Id.Lit_Comma ','> <PIPE>}
        {(SQ <'t9135/svn.dump'>)}
        {
          (SQ <'\n'> <'\tmkdir -p simple-git &&\n'> <'\t(\n'> <'\t\tcd simple-git &&\n'> 
            <'\t\treinit_git &&\n'> <'\t\ttry_dump "$TEST_DIRECTORY/t9135/svn.dump"\n'> <'\t) &&\n'> <'\t(\n'> <'\t\tcd simple-svnco &&\n'> 
            <'\t\tgit init &&\n'> <'\t\tgit add . &&\n'> <'\t\tgit fetch ../simple-git master &&\n'> 
            <'\t\tgit diff --exit-code FETCH_HEAD\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_done>
      more_env: []
      words: [{<test_done>}]
      redirects: []
      do_fork: T
    )
  ]
)