(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <'Test --follow should always find copies hard in git log.\n'> <'\n'>)}
          spids: [13]
        )
      ]
      spids: [13]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(.)} {(DQ ($ VSub_Name '$TEST_DIRECTORY')) (/diff-lib.sh)})
    (SimpleCommand
      words: [{(echo)} {(SQ <'Line 1\n'> <'Line 2\n'> <'Line 3\n'>)}]
      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(path0)} spids:[33])]
    )
    (C {(test_expect_success)} {(SQ <'add a file path0 and commit.'>)} 
      {(SQ <'git add path0 &&\n'> <'     git commit -m "Add path0"'>)}
    )
    (SimpleCommand
      words: [{(echo)} {(SQ <'New line 1\n'> <'New line 2\n'> <'New line 3\n'>)}]
      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(path0)} spids:[61])]
    )
    (C {(test_expect_success)} {(SQ <'Change path0.'>)} 
      {(SQ <'git add path0 &&\n'> <'     git commit -m "Change path0"'>)}
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Less fd:-1 arg_word:{(path0)} spids:[88])
        (Redir op_id:Redir_Great fd:-1 arg_word:{(path1)} spids:[91])
      ]
    )
    (C {(test_expect_success)} {(SQ <'copy path0 to path1.'>)} 
      {(SQ <'git add path1 &&\n'> <'     git commit -m "Copy path1 from path0"'>)}
    )
    (C {(test_expect_success)} {(SQ <'find the copy path0 -> path1 harder'>)} 
      {(SQ <'git log --follow --name-status --pretty="format:%s"  path1 > current'>)}
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expected)} spids:[127])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {('Copy path1 from path0\n') ('C100\tpath0\tpath1\n') ('\n') ('Change path0\n') 
              ('M\tpath0\n') ('\n') ('Add path0\n') ('A\tpath0\n')
            }
          do_expansion: False
          here_end: EOF
          was_filled: True
          spids: [130]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <'validate the output.'>)} 
      {(SQ <'compare_diff_patch current expected'>)}
    )
    (C {(test_done)})
  ]
)