(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'git svn property tests'>)}
          spids: [13]
        )
      ]
    )
    (C {<.>} {<'./lib-git-svn.sh'>})
    (C {<mkdir>} {<import>})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:a_crlf)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [28]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:a_lf)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [30]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:a_cr)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [32]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:a_ne_crlf)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [34]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:a_ne_lf)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [36]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:a_ne_cr)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [38]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:a_empty)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [40]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:a_empty_lf)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [42]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:a_empty_cr)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [44]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:a_empty_crlf)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [46]
        )
      ]
    )
    (C {<cd>} {<import>})
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_DGreat '>>'> loc:(redir_loc.Fd fd:1) arg:{<kw.c>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>}
              here_end_span_id: 66
              stdin_parts: [
                <'/* Somebody prematurely put a keyword into this file */\n'>
                <'/* $Id$ */\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<printf>}
        {
          (DQ <Hello> <Id.Lit_Other '\\'> <r> <Id.Lit_Other '\\'> <nWorld> <Id.Lit_Other '\\'> <r> 
            <Id.Lit_Other '\\'> <n>
          )
        }
      ]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<crlf>})]
      do_fork: T
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:a_crlf)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: (C {<git>} {<hash-object>} {<-w>} {<crlf>})
              )
            }
          spids: [88]
        )
      ]
    )
    (command.Simple
      words: [{<printf>} {(DQ <Hello> <Id.Lit_Other '\\'> <rWorld> <Id.Lit_Other '\\'> <r>)}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<cr>})]
      do_fork: T
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:a_cr)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: (C {<git>} {<hash-object>} {<-w>} {<cr>})
              )
            }
          spids: [115]
        )
      ]
    )
    (command.Simple
      words: [{<printf>} {(DQ <Hello> <Id.Lit_Other '\\'> <nWorld> <Id.Lit_Other '\\'> <n>)}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<lf>})]
      do_fork: T
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:a_lf)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: (C {<git>} {<hash-object>} {<-w>} {<lf>})
              )
            }
          spids: [142]
        )
      ]
    )
    (command.Simple
      words: [{<printf>} {(DQ <Hello> <Id.Lit_Other '\\'> <r> <Id.Lit_Other '\\'> <nWorld>)}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<ne_crlf>})]
      do_fork: T
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:a_ne_crlf)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: (C {<git>} {<hash-object>} {<-w>} {<ne_crlf>})
              )
            }
          spids: [170]
        )
      ]
    )
    (command.Simple
      words: [{<printf>} {(DQ <Hello> <Id.Lit_Other '\\'> <nWorld>)}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<ne_lf>})]
      do_fork: T
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:a_ne_lf)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: (C {<git>} {<hash-object>} {<-w>} {<ne_lf>})
              )
            }
          spids: [195]
        )
      ]
    )
    (command.Simple
      words: [{<printf>} {(DQ <Hello> <Id.Lit_Other '\\'> <rWorld>)}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<ne_cr>})]
      do_fork: T
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:a_ne_cr)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: (C {<git>} {<hash-object>} {<-w>} {<ne_cr>})
              )
            }
          spids: [220]
        )
      ]
    )
    (C {<touch>} {<empty>})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:a_empty)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: (C {<git>} {<hash-object>} {<-w>} {<empty>})
              )
            }
          spids: [238]
        )
      ]
    )
    (command.Simple
      words: [{<printf>} {(DQ <Id.Lit_Other '\\'> <n>)}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<empty_lf>})]
      do_fork: T
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:a_empty_lf)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: (C {<git>} {<hash-object>} {<-w>} {<empty_lf>})
              )
            }
          spids: [262]
        )
      ]
    )
    (command.Simple
      words: [{<printf>} {(DQ <Id.Lit_Other '\\'> <r>)}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<empty_cr>})]
      do_fork: T
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:a_empty_cr)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: (C {<git>} {<hash-object>} {<-w>} {<empty_cr>})
              )
            }
          spids: [286]
        )
      ]
    )
    (command.Simple
      words: [{<printf>} {(DQ <Id.Lit_Other '\\'> <r> <Id.Lit_Other '\\'> <n>)}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<empty_crlf>})]
      do_fork: T
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:a_empty_crlf)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: (C {<git>} {<hash-object>} {<-w>} {<empty_crlf>})
              )
            }
          spids: [312]
        )
      ]
    )
    (command.Simple
      words: [
        {<svn_cmd>}
        {<import>}
        {<--no-auto-props>}
        {<-m>}
        {(SQ <'import for git svn'>)}
        {<.>}
        {(DQ ($ Id.VSub_DollarName '$svnrepo'))}
      ]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})]
      do_fork: T
    )
    (C {<cd>} {<..>})
    (C {<rm>} {<-rf>} {<import>})
    (C {<test_expect_success>} {(SQ <'checkout working copy from svn'>)} 
      {(SQ <'svn co "$svnrepo" test_wc'>)}
    )
    (C {<test_expect_success>} {(SQ <'setup some commits to svn'>)} 
      {
        (SQ <'\n'> <'\t(\n'> <'\t\tcd test_wc &&\n'> <'\t\techo Greetings >> kw.c &&\n'> 
          <'\t\tpoke kw.c &&\n'> <'\t\tsvn_cmd commit -m "Not yet an Id" &&\n'> <'\t\techo Hello world >> kw.c &&\n'> 
          <'\t\tpoke kw.c &&\n'> <'\t\tsvn_cmd commit -m "Modified file, but still not yet an Id" &&\n'> 
          <'\t\tsvn_cmd propset svn:keywords Id kw.c &&\n'> <'\t\tpoke kw.c &&\n'> <'\t\tsvn_cmd commit -m "Propset Id"\n'> <'\t)\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'initialize git svn'>)} {(SQ <'git svn init "$svnrepo"'>)})
    (C {<test_expect_success>} {(SQ <'fetch revisions from svn'>)} {(SQ <'git svn fetch'>)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:name)
          op: assign_op.Equal
          rhs: {(SQ <'test svn:keywords ignoring'>)}
          spids: [411]
        )
      ]
    )
    (C {<test_expect_success>} {(DQ ($ Id.VSub_DollarName '$name'))} 
      {
        (SQ <'git checkout -b mybranch remotes/git-svn &&\n'> <'\techo Hi again >> kw.c &&\n'> 
          <'\tgit commit -a -m "test keywords ignoring" &&\n'> <'\tgit svn set-tree remotes/git-svn..mybranch &&\n'> <'\tgit pull . remotes/git-svn'>
        )
      }
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:expect)
          op: assign_op.Equal
          rhs: {(SQ <'/* $Id$ */'>)}
          spids: [433]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:got)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<sed>} {<-ne>} {<2p>} {<kw.c>})
                )
              )
            }
          spids: [438]
        )
      ]
    )
    (C {<test_expect_success>} {(SQ <'raw $Id$ found in kw.c'>)} 
      {
        (DQ <'test \''> ($ Id.VSub_DollarName '$expect') <'\' = \''> ($ Id.VSub_DollarName '$got') <'\''>)
      }
    )
    (C {<test_expect_success>} {(DQ <'propset CR on crlf files'>)} 
      {
        (SQ <'\n'> <'\t(\n'> <'\t\tcd test_wc &&\n'> <'\t\tsvn_cmd propset svn:eol-style CR empty &&\n'> 
          <'\t\tsvn_cmd propset svn:eol-style CR crlf &&\n'> <'\t\tsvn_cmd propset svn:eol-style CR ne_crlf &&\n'> 
          <'\t\tsvn_cmd commit -m "propset CR on crlf files"\n'> <'\t )\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'fetch and pull latest from svn and checkout a new wc'>)} 
      {
        (SQ <'git svn fetch &&\n'> <'\t git pull . remotes/git-svn &&\n'> 
          <'\t svn_cmd co "$svnrepo" new_wc'>
        )
      }
    )
    (command.ForEach
      iter_name: i
      iter_words: [
        {<crlf>}
        {<ne_crlf>}
        {<lf>}
        {<ne_lf>}
        {<cr>}
        {<ne_cr>}
        {<empty_cr>}
        {<empty_lf>}
        {<empty>}
        {<empty_crlf>}
      ]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (C {<test_expect_success>} {(DQ <'Comparing '> ($ Id.VSub_DollarName '$i'))} 
              {(DQ <'cmp '> ($ Id.VSub_DollarName '$i') <' new_wc/'> ($ Id.VSub_DollarName '$i'))}
            )
          ]
        )
    )
    (C {<cd>} {<test_wc>})
    (command.Simple
      words: [{<printf>} {(SQ <'$Id$\\rHello\\rWorld\\r'>)}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<cr>})]
      do_fork: T
    )
    (command.Simple
      words: [{<printf>} {(SQ <'$Id$\\rHello\\rWorld'>)}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<ne_cr>})]
      do_fork: T
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:a_cr)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Pipeline
                    children: [
                      (C {<printf>} {(SQ <'$Id$\\r\\nHello\\r\\nWorld\\r\\n'>)})
                      (C {<git>} {<hash-object>} {<--stdin>})
                    ]
                    negated: F
                  )
              )
            }
          spids: [573]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:a_ne_cr)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Pipeline
                    children: [
                      (C {<printf>} {(SQ <'$Id$\\r\\nHello\\r\\nWorld'>)})
                      (C {<git>} {<hash-object>} {<--stdin>})
                    ]
                    negated: F
                  )
              )
            }
          spids: [591]
        )
      ]
    )
    (C {<test_expect_success>} {(SQ <'Set CRLF on cr files'>)} 
      {
        (SQ <'svn_cmd propset svn:eol-style CRLF cr &&\n'> 
          <'\t svn_cmd propset svn:eol-style CRLF ne_cr &&\n'> <'\t svn_cmd propset svn:keywords Id cr &&\n'> <'\t svn_cmd propset svn:keywords Id ne_cr &&\n'> 
          <'\t svn_cmd commit -m "propset CRLF on cr files"'>
        )
      }
    )
    (C {<cd>} {<..>})
    (C {<test_expect_success>} {(SQ <'fetch and pull latest from svn'>)} 
      {(SQ <'git svn fetch && git pull . remotes/git-svn'>)}
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:b_cr)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<git>} {<hash-object>} {<cr>})
                )
              )
            }
          spids: [642]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:b_ne_cr)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<git>} {<hash-object>} {<ne_cr>})
                )
              )
            }
          spids: [653]
        )
      ]
    )
    (C {<test_expect_success>} {(SQ <'CRLF + $Id$'>)} 
      {
        (DQ <'test \''> ($ Id.VSub_DollarName '$a_cr') <'\' = \''> ($ Id.VSub_DollarName '$b_cr') <'\''>)
      }
    )
    (C {<test_expect_success>} {(SQ <'CRLF + $Id$ (no newline)'>)} 
      {
        (DQ <'test \''> ($ Id.VSub_DollarName '$a_ne_cr') <'\' = \''> ($ Id.VSub_DollarName '$b_ne_cr') 
          <'\''>
        )
      }
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<show-ignore.expect>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>}
              here_end_span_id: 716
              stdin_parts: [
                <'\n'>
                <'# /\n'>
                <'/no-such-file*\n'>
                <'\n'>
                <'# /deeply/\n'>
                <'/deeply/no-such-file*\n'>
                <'\n'>
                <'# /deeply/nested/\n'>
                <'/deeply/nested/no-such-file*\n'>
                <'\n'>
                <'# /deeply/nested/directory/\n'>
                <'/deeply/nested/directory/no-such-file*\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (C {<test_expect_success>} {(SQ <'test show-ignore'>)} 
      {
        (DQ <'\n'> <'\t(\n'> <'\t\tcd test_wc &&\n'> <'\t\tmkdir -p deeply/nested/directory &&\n'> 
          <'\t\ttouch deeply/nested/directory/.keep &&\n'> <'\t\tsvn_cmd add deeply &&\n'> <'\t\tsvn_cmd up &&\n'> <'\t\tsvn_cmd propset -R svn:ignore \'\n'> 
          <'no-such-file*\n'> <'\' .\n'> <'\t\tsvn_cmd commit -m \'propset svn:ignore\'\n'> <'\t) &&\n'> 
          <'\tgit svn show-ignore > show-ignore.got &&\n'> <'\tcmp show-ignore.expect show-ignore.got\n'>
        )
      }
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<create-ignore.expect>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>}
              here_end_span_id: 752
              stdin_parts: [<'/no-such-file*\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir
          op: <Id.Redir_Great '>'>
          loc: (redir_loc.Fd fd:1)
          arg: {<create-ignore-index.expect>}
        )
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>}
              here_end_span_id: 767
              stdin_parts: [
                <'100644 8c52e5dfcd0a8b6b6bcfe6b41b89bcbf493718a5 0\t.gitignore\n'>
                <'100644 8c52e5dfcd0a8b6b6bcfe6b41b89bcbf493718a5 0\tdeeply/.gitignore\n'>
                <'100644 8c52e5dfcd0a8b6b6bcfe6b41b89bcbf493718a5 0\tdeeply/nested/.gitignore\n'>
                <
'100644 8c52e5dfcd0a8b6b6bcfe6b41b89bcbf493718a5 0\tdeeply/nested/directory/.gitignore\n'
                >
              ]
            )
        )
      ]
      do_fork: T
    )
    (C {<test_expect_success>} {(SQ <'test create-ignore'>)} 
      {
        (DQ <'\n'> <'\tgit svn fetch && git pull . remotes/git-svn &&\n'> 
          <'\tgit svn create-ignore &&\n'> <'\tcmp ./.gitignore create-ignore.expect &&\n'> 
          <'\tcmp ./deeply/.gitignore create-ignore.expect &&\n'> <'\tcmp ./deeply/nested/.gitignore create-ignore.expect &&\n'> 
          <'\tcmp ./deeply/nested/directory/.gitignore create-ignore.expect &&\n'> <'\tgit ls-files -s | grep gitignore | cmp - create-ignore-index.expect\n'> <'\t'>
        )
      }
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<prop.expect>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>}
              here_end_span_id: 800
              stdin_parts: [<'\n'> <'no-such-file*\n'> <'\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<prop2.expect>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>}
              here_end_span_id: 811
              stdin_parts: [<'8\n'>]
            )
        )
      ]
      do_fork: T
    )
    (C {<test_expect_success>} {(SQ <'test propget'>)} 
      {
        (DQ <'\n'> <'\tgit svn propget svn:ignore . | cmp - prop.expect &&\n'> <'\tcd deeply &&\n'> 
          <'\tgit svn propget svn:ignore . | cmp - ../prop.expect &&\n'> <'\tgit svn propget svn:entry:committed-rev nested/directory/.keep '> 
          <'\t  | cmp - ../prop2.expect &&\n'> <'\tgit svn propget svn:ignore .. | cmp - ../prop.expect &&\n'> 
          <'\tgit svn propget svn:ignore nested/ | cmp - ../prop.expect &&\n'> <'\tgit svn propget svn:ignore ./nested | cmp - ../prop.expect &&\n'> 
          <'\tgit svn propget svn:ignore .././deeply/nested | cmp - ../prop.expect\n'> <'\t'>
        )
      }
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<prop.expect>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>}
              here_end_span_id: 859
              stdin_parts: [
                <'Properties on \'.\':\n'>
                <'  svn:entry:committed-date\n'>
                <'  svn:entry:committed-rev\n'>
                <'  svn:entry:last-author\n'>
                <'  svn:entry:uuid\n'>
                <'  svn:ignore\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<prop2.expect>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>}
              here_end_span_id: 874
              stdin_parts: [
                <'Properties on \'nested/directory/.keep\':\n'>
                <'  svn:entry:committed-date\n'>
                <'  svn:entry:committed-rev\n'>
                <'  svn:entry:last-author\n'>
                <'  svn:entry:uuid\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (C {<test_expect_success>} {(SQ <'test proplist'>)} 
      {
        (DQ <'\n'> <'\tgit svn proplist . | cmp - prop.expect &&\n'> 
          <'\tgit svn proplist nested/directory/.keep | cmp - prop2.expect\n'> <'\t'>
        )
      }
    )
    (C {<test_done>})
  ]
)