(command.CommandList
  children: [
    (C {<mkdir>} {<temp>})
    (C {<cd>} {<temp>})
    (C {<mkdir>} {<project-orig>})
    (C {<cd>} {<project-orig>})
    (C {<mkdir>} {<trunk>})
    (command.Simple
      words: [{<echo>} {<a>}]
      redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<trunk/a>})]
    )
    (C {<mkdir>} {<trunk/d1>})
    (C {<mkdir>} {<trunk/d2>})
    (command.Simple
      words: [{<echo>} {<b>}]
      redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<trunk/d1/b>})]
    )
    (command.Simple
      words: [{<echo>} {<c>}]
      redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<trunk/d1/c>})]
    )
    (command.Simple
      words: [{<echo>} {<d>}]
      redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<trunk/d2/d>})]
    )
    (C {<cd>} {<..>})
    (C {<svnadmin>} {<create>} {<svn-repo>})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:svnurl)
          op: assign_op.Equal
          rhs: 
            {<file> <Id.Lit_Other ':'> <//> 
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                command_list: (command.CommandList children:[(C {<pwd>})])
              ) </svn-repo>
            }
          spids: [85]
        )
      ]
    )
    (C {<svn>} {<import>} {<project-orig>} {($ Id.VSub_DollarName '$svnurl')} {<-m>} {(DQ <'init projA'>)})
    (C {<svn>} {<co>} {($ Id.VSub_DollarName '$svnurl')} {<project>})
    (C {<cd>} {<project>})
    (command.Simple
      words: [{<echo>} {<a>}]
      redirects: [(redir.Redir op:<Id.Redir_DGreat '>>'> fd:-1 arg_word:{<trunk/a>})]
    )
    (command.Simple
      words: [{<echo>} {<c>}]
      redirects: [(redir.Redir op:<Id.Redir_DGreat '>>'> fd:-1 arg_word:{<trunk/d1/c>})]
    )
    (C {<svn>} {<ci>} {<-m>} {<commitbeforemove>})
    (C {<svn>} {<mv>} {($ Id.VSub_DollarName '$svnurl') </trunk>} 
      {($ Id.VSub_DollarName '$svnurl') </subproject>} {<-m>} {<movedtrunk>}
    )
    (C {<svn>} {<up>})
    (C {<mkdir>} {<subproject/trunk>})
    (C {<svn>} {<add>} {<subproject/trunk>})
    (C {<svn>} {<ci>} {<-m>} {<createtrunk>})
    (C {<mkdir>} {<subproject/branches>})
    (C {<svn>} {<add>} {<subproject/branches>})
    (C {<svn>} {<ci>} {<-m>} {<createbranches>})
    (C {<svn>} {<mv>} {($ Id.VSub_DollarName '$svnurl') </subproject/d1>} 
      {($ Id.VSub_DollarName '$svnurl') </subproject/trunk/d1>} {<-m>} {<moved1>}
    )
    (C {<svn>} {<mv>} {($ Id.VSub_DollarName '$svnurl') </subproject/d2>} 
      {($ Id.VSub_DollarName '$svnurl') </subproject/trunk/d2>} {<-m>} {<moved2>}
    )
    (C {<svn>} {<up>})
    (command.Simple
      words: [{<echo>} {<b>}]
      redirects: [(redir.Redir op:<Id.Redir_DGreat '>>'> fd:-1 arg_word:{<subproject/trunk/d1/b>})]
    )
    (C {<svn>} {<rm>} {<subproject/trunk/d2>})
    (C {<svn>} {<ci>} {<-m>} {(DQ <'changeb and rm d2'>)})
    (C {<svn>} {<mv>} {($ Id.VSub_DollarName '$svnurl') </subproject/trunk/d1>} 
      {($ Id.VSub_DollarName '$svnurl') </subproject/branches/d1>} {<-m>} {<moved1again>}
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.Pipeline
                  children: [
                    (C {<svn>} {<help>} {<copy>})
                    (command.Simple
                      words: [{<grep>} {(SQ <'SRC\\[@REV\\]'>)}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                        (redir.Redir
                          op: <Id.Redir_GreatAnd '2>&'>
                          fd: 2
                          arg_word: {<1>}
                        )
                      ]
                    )
                  ]
                  negated: F
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (C {<svn>} {<copy>} 
              {($ Id.VSub_DollarName '$svnurl') </subproject/trunk/d2/d> <Id.Lit_Other '@'> <7>} {($ Id.VSub_DollarName '$svnurl') </subproject/trunk>} {<-m>} {<copyfilefrompast>}
            )
            (C {<svn>} {<copy>} 
              {($ Id.VSub_DollarName '$svnurl') </subproject/trunk/d2> <Id.Lit_Other '@'> <7>} {($ Id.VSub_DollarName '$svnurl') </subproject/trunk>} {<-m>} {<copydirfrompast>}
            )
          ]
          spids: [279 303]
        )
      ]
      else_action: [
        (C {<svn>} {<copy>} {<-r>} {<7>} {($ Id.VSub_DollarName '$svnurl') </subproject/trunk/d2/d>} 
          {($ Id.VSub_DollarName '$svnurl') </subproject/trunk>} {<-m>} {<copyfilefrompast>}
        )
        (C {<svn>} {<copy>} {<-r>} {<7>} {($ Id.VSub_DollarName '$svnurl') </subproject/trunk/d2>} 
          {($ Id.VSub_DollarName '$svnurl') </subproject/trunk>} {<-m>} {<copydirfrompast>}
        )
      ]
    )
    (C {<svn>} {<up>})
    (C {<mkdir>} {<-p>} {<subproject/trunk/d3/d31>})
    (command.Simple
      words: [{<echo>} {<e>}]
      redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<subproject/trunk/d3/d31/e>})]
    )
    (command.Simple
      words: [{<echo>} {<f>}]
      redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<subproject/trunk/d3/f>})]
    )
    (C {<svn>} {<add>} {<subproject/trunk/d3>})
    (C {<svn>} {<ci>} {<-m>} {(DQ <'add d3'>)})
    (C {<svn>} {<copy>} {<subproject/trunk/d3>} {<subproject/trunk/d4>})
    (C {<svn>} {<rm>} {<subproject/trunk/d3/d31>})
    (C {<svn>} {<ci>} {<-m>} {(DQ <'copy dir and remove subdir'>)})
    (C {<svn>} {<up>})
    (C {<mkdir>} {<-p>} {<subproject/trunk/d4old>})
    (command.Simple
      words: [{<echo>} {<g>}]
      redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<subproject/trunk/d4old/g>})]
    )
    (C {<svn>} {<add>} {<subproject/trunk/d4old>})
    (C {<svn>} {<ci>} {<-m>} {(DQ <'add d4old'>)})
    (C {<svn>} {<mv>} {<subproject/trunk/d4old>} {<subproject/trunk/d4new>})
    (C {<svn>} {<ci>} {<-m>} {(DQ <'rename d4old into d4new'>)})
    (C {<cd>} {<..>})
    (command.Simple
      words: [{<svnadmin>} {<dump>} {<svn-repo>}]
      redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<../move.svndump>})]
    )
  ]
)