(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 svn honors i18n.commitEncoding in config'
                  span_id: 12
                )
              )
            }
          spids: [10]
        )
      ]
    )
    (C {(.)} {(./lib-git-svn.sh)})
    (command.ShFunction
      name: compare_git_head_with
      body: 
        (command.BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:nr)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:30)
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Simple
                                words: [{(wc)} {(-l)}]
                                redirects: [
                                  (redir.Redir
                                    op: (Token id:Id.Redir_Less val:'<' span_id:35)
                                    fd: -1
                                    arg_word: {(DQ ($ Id.VSub_Number '$1'))}
                                  )
                                ]
                              )
                            ]
                          )
                      )
                    }
                  spids: [29]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:a)
                  op: assign_op.Equal
                  rhs: {(7)}
                  spids: [43]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:b)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (word_part.ArithSub
                        anode: 
                          (arith_expr.Binary
                            op_id: Id.Arith_Minus
                            left: 
                              (arith_expr.Binary
                                op_id: Id.Arith_Plus
                                left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$a')})
                                right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$nr')})
                              )
                            right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                          )
                      )
                    }
                  spids: [47]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.Pipeline
                  children: [
                    (C {(git)} {(cat-file)} {(commit)} {(HEAD)})
                    (command.Simple
                      words: [
                        {(sed)}
                        {(-ne)}
                        {(DQ ($ Id.VSub_DollarName '$a') (',') (${ Id.VSub_Name b) (p))}
                      ]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_Great val:'>' span_id:85)
                          fd: -1
                          arg_word: {(current)}
                        )
                      ]
                    )
                  ]
                  negated: F
                )
                (C {(test_cmp)} {(current)} {(DQ ($ Id.VSub_Number '$1'))})
              ]
            )
          ]
        )
    )
    (C {(prepare_a_utf8_locale)})
    (command.ShFunction
      name: compare_svn_head_with
      body: 
        (command.BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.Pipeline
                  children: [
                    (command.Simple
                      words: [
                        {(svn)}
                        {(log)}
                        {
                          (command_sub
                            left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:130)
                            command_list: 
                              (command.CommandList
                                children: [(C {(git)} {(svn)} {(info)} {(--url)})]
                              )
                          )
                        }
                      ]
                      more_env: [
                        (env_pair
                          name: LC_ALL
                          val: {(DQ ($ Id.VSub_DollarName '$a_utf8_locale'))}
                          spids: [121]
                        )
                      ]
                    )
                    (command.Simple
                      words: [
                        {(perl)}
                        {(-w)}
                        {(-e)}
                        {
                          (SQ (Token id:Id.Lit_Chars val:'\n' span_id:149) 
                            (Token
                              id: Id.Lit_Chars
                              val: '\t\tuse bytes;\n'
                              span_id: 150
                            ) (Token id:Id.Lit_Chars val:'\t\t$/ = ("-"x72) . "\\n";\n' span_id:151) 
                            (Token
                              id: Id.Lit_Chars
                              val: '\t\tmy @x = <STDIN>;\n'
                              span_id: 152
                            ) (Token id:Id.Lit_Chars val:'\t\t@x = split(/\\n/, $x[1]);\n' span_id:153) 
                            (Token
                              id: Id.Lit_Chars
                              val: '\t\tsplice(@x, 0, 2);\n'
                              span_id: 154
                            ) (Token id:Id.Lit_Chars val:'\t\t$x[-1] = "";\n' span_id:155) 
                            (Token
                              id: Id.Lit_Chars
                              val: '\t\tprint join("\\n", @x);\n'
                              span_id: 156
                            ) (Token id:Id.Lit_Chars val:'\t' span_id:157)
                          )
                        }
                      ]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_Great val:'>' span_id:160)
                          fd: -1
                          arg_word: {(current)}
                        )
                      ]
                    )
                  ]
                  negated: F
                )
                (C {(test_cmp)} {(current)} {(DQ ($ Id.VSub_Number '$1'))})
              ]
            )
          ]
        )
    )
    (command.ForEach
      iter_name: H
      iter_words: [{(ISO8859-1)} {(eucJP)} {(ISO-2022-JP)}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (C {(test_expect_success)} {(DQ ($ Id.VSub_DollarName '$H') (' setup'))} 
              {
                (SQ (Token id:Id.Lit_Chars val:'\n' span_id:201) 
                  (Token id:Id.Lit_Chars val:'\t\tmkdir $H &&\n' span_id:202) (Token id:Id.Lit_Chars val:'\t\tsvn_cmd import -m "$H test" $H "$svnrepo"/$H &&\n' span_id:203) 
                  (Token
                    id: Id.Lit_Chars
                    val: '\t\tgit svn clone "$svnrepo"/$H $H\n'
                    span_id: 204
                  ) (Token id:Id.Lit_Chars val:'\t' span_id:205)
                )
              }
            )
          ]
        )
    )
    (command.ForEach
      iter_name: H
      iter_words: [{(ISO8859-1)} {(eucJP)} {(ISO-2022-JP)}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (C {(test_expect_success)} {(DQ ($ Id.VSub_DollarName '$H') (' commit on git side'))} 
              {
                (SQ (Token id:Id.Lit_Chars val:'\n' span_id:234) 
                  (Token id:Id.Lit_Chars val:'\t(\n' span_id:235) (Token id:Id.Lit_Chars val:'\t\tcd $H &&\n' span_id:236) 
                  (Token
                    id: Id.Lit_Chars
                    val: '\t\tgit config i18n.commitencoding $H &&\n'
                    span_id: 237
                  ) (Token id:Id.Lit_Chars val:'\t\tgit checkout -b t refs/remotes/git-svn &&\n' span_id:238) 
                  (Token id:Id.Lit_Chars val:'\t\techo $H >F &&\n' span_id:239) (Token id:Id.Lit_Chars val:'\t\tgit add F &&\n' span_id:240) 
                  (Token
                    id: Id.Lit_Chars
                    val: '\t\tgit commit -a -F "$TEST_DIRECTORY"/t3900/$H.txt &&\n'
                    span_id: 241
                  ) 
                  (Token
                    id: Id.Lit_Chars
                    val: '\t\tE=$(git cat-file commit HEAD | sed -ne "s/^encoding //p") &&\n'
                    span_id: 242
                  ) (Token id:Id.Lit_Chars val:'\t\ttest "z$E" = "z$H"\n' span_id:243) 
                  (Token
                    id: Id.Lit_Chars
                    val: '\t\tcompare_git_head_with "$TEST_DIRECTORY"/t3900/$H.txt\n'
                    span_id: 244
                  ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:245) (Token id:Id.Lit_Chars val:'\t' span_id:246)
                )
              }
            )
          ]
        )
    )
    (command.ForEach
      iter_name: H
      iter_words: [{(ISO8859-1)} {(eucJP)} {(ISO-2022-JP)}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (C {(test_expect_success)} {(DQ ($ Id.VSub_DollarName '$H') (' dcommit to svn'))} 
              {
                (SQ (Token id:Id.Lit_Chars val:'\n' span_id:275) 
                  (Token id:Id.Lit_Chars val:'\t(\n' span_id:276) (Token id:Id.Lit_Chars val:'\t\tcd $H &&\n' span_id:277) 
                  (Token
                    id: Id.Lit_Chars
                    val: '\t\tgit svn dcommit &&\n'
                    span_id: 278
                  ) (Token id:Id.Lit_Chars val:'\t\tgit cat-file commit HEAD | grep git-svn-id: &&\n' span_id:279) 
                  (Token
                    id: Id.Lit_Chars
                    val: '\t\tE=$(git cat-file commit HEAD | sed -ne "s/^encoding //p") &&\n'
                    span_id: 280
                  ) (Token id:Id.Lit_Chars val:'\t\ttest "z$E" = "z$H" &&\n' span_id:281) 
                  (Token
                    id: Id.Lit_Chars
                    val: '\t\tcompare_git_head_with "$TEST_DIRECTORY"/t3900/$H.txt\n'
                    span_id: 282
                  ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:283) (Token id:Id.Lit_Chars val:'\t' span_id:284)
                )
              }
            )
          ]
        )
    )
    (C {(test_expect_success)} {(UTF8)} 
      {(SQ (Token id:Id.Lit_Chars val:'ISO-8859-1 should match UTF-8 in svn' span_id:295))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:299) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:300) (Token id:Id.Lit_Chars val:'\t\tcd ISO8859-1 &&\n' span_id:301) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tcompare_svn_head_with "$TEST_DIRECTORY"/t3900/1-UTF-8.txt\n'
            span_id: 302
          ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:303)
        )
      }
    )
    (command.ForEach
      iter_name: H
      iter_words: [{(eucJP)} {(ISO-2022-JP)}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (C {(test_expect_success)} {(UTF8)} 
              {(DQ ($ Id.VSub_DollarName '$H') (' should match UTF-8 in svn'))} 
              {
                (SQ (Token id:Id.Lit_Chars val:'\n' span_id:330) 
                  (Token id:Id.Lit_Chars val:'\t\t(\n' span_id:331) (Token id:Id.Lit_Chars val:'\t\t\tcd $H &&\n' span_id:332) 
                  (Token
                    id: Id.Lit_Chars
                    val: '\t\t\tcompare_svn_head_with "$TEST_DIRECTORY"/t3900/2-UTF-8.txt\n'
                    span_id: 333
                  ) (Token id:Id.Lit_Chars val:'\t\t)\n' span_id:334) (Token id:Id.Lit_Chars val:'\t' span_id:335)
                )
              }
            )
          ]
        )
    )
    (C {(test_done)})
  ]
)