(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <'git apply should not get confused with rename/copy.\n'> <'\n'>)}
          spids: [13]
        )
      ]
      spids: [13]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(mkdir)} {(-p)} {(klibc/arch/x86_64/include/klibc)})
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: -1
          arg_word: {(klibc/arch/x86_64/include/klibc/archsetjmp.h)}
          spids: [38]
        )
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {('/*\n') (' * arch/x86_64/include/klibc/archsetjmp.h\n') (' */\n') ('\n') 
              ('#ifndef _KLIBC_ARCHSETJMP_H\n') ('#define _KLIBC_ARCHSETJMP_H\n') ('\n') ('struct __jmp_buf {\n') ('  unsigned long __rbx;\n') 
              ('  unsigned long __rsp;\n') ('  unsigned long __rbp;\n') ('  unsigned long __r12;\n') ('  unsigned long __r13;\n') 
              ('  unsigned long __r14;\n') ('  unsigned long __r15;\n') ('  unsigned long __rip;\n') ('};\n') ('\n') 
              ('typedef struct __jmp_buf jmp_buf[1];\n') ('\n') ('#endif /* _SETJMP_H */\n')
            }
          do_expansion: False
          here_end: EOF
          was_filled: True
          spids: [41]
        )
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(klibc/README)} spids:[47])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {('This is a simple readme file.\n')}
          do_expansion: False
          here_end: EOF
          was_filled: True
          spids: [50]
        )
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(patch)} spids:[57])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (
'diff --git a/klibc/arch/x86_64/include/klibc/archsetjmp.h b/include/arch/cris/klibc/archsetjmp.h\n'
              ) ('similarity index 76%\n') ('copy from klibc/arch/x86_64/include/klibc/archsetjmp.h\n') 
              ('copy to include/arch/cris/klibc/archsetjmp.h\n') ('--- a/klibc/arch/x86_64/include/klibc/archsetjmp.h\n') 
              ('+++ b/include/arch/cris/klibc/archsetjmp.h\n') ('@@ -1,21 +1,24 @@\n') (' /*\n') ('- * arch/x86_64/include/klibc/archsetjmp.h\n') 
              ('+ * arch/cris/include/klibc/archsetjmp.h\n') ('  */\n') ('\n') (' #ifndef _KLIBC_ARCHSETJMP_H\n') (' #define _KLIBC_ARCHSETJMP_H\n') ('\n') 
              (' struct __jmp_buf {\n') ('-  unsigned long __rbx;\n') ('-  unsigned long __rsp;\n') ('-  unsigned long __rbp;\n') 
              ('-  unsigned long __r12;\n') ('-  unsigned long __r13;\n') ('-  unsigned long __r14;\n') ('-  unsigned long __r15;\n') 
              ('-  unsigned long __rip;\n') ('+  unsigned long __r0;\n') ('+  unsigned long __r1;\n') ('+  unsigned long __r2;\n') 
              ('+  unsigned long __r3;\n') ('+  unsigned long __r4;\n') ('+  unsigned long __r5;\n') ('+  unsigned long __r6;\n') 
              ('+  unsigned long __r7;\n') ('+  unsigned long __r8;\n') ('+  unsigned long __sp;\n') ('+  unsigned long __srp;\n') (' };\n') ('\n') 
              (' typedef struct __jmp_buf jmp_buf[1];\n') ('\n') ('-#endif /* _SETJMP_H */\n') ('+#endif /* _KLIBC_ARCHSETJMP_H */\n') 
              (
'diff --git a/klibc/arch/x86_64/include/klibc/archsetjmp.h b/include/arch/m32r/klibc/archsetjmp.h\n'
              ) ('similarity index 66%\n') ('rename from klibc/arch/x86_64/include/klibc/archsetjmp.h\n') 
              ('rename to include/arch/m32r/klibc/archsetjmp.h\n') ('--- a/klibc/arch/x86_64/include/klibc/archsetjmp.h\n') 
              ('+++ b/include/arch/m32r/klibc/archsetjmp.h\n') ('@@ -1,21 +1,21 @@\n') (' /*\n') ('- * arch/x86_64/include/klibc/archsetjmp.h\n') 
              ('+ * arch/m32r/include/klibc/archsetjmp.h\n') ('  */\n') ('\n') (' #ifndef _KLIBC_ARCHSETJMP_H\n') (' #define _KLIBC_ARCHSETJMP_H\n') ('\n') 
              (' struct __jmp_buf {\n') ('-  unsigned long __rbx;\n') ('-  unsigned long __rsp;\n') ('-  unsigned long __rbp;\n') 
              ('+  unsigned long __r8;\n') ('+  unsigned long __r9;\n') ('+  unsigned long __r10;\n') ('+  unsigned long __r11;\n') 
              ('   unsigned long __r12;\n') ('   unsigned long __r13;\n') ('   unsigned long __r14;\n') ('   unsigned long __r15;\n') 
              ('-  unsigned long __rip;\n') (' };\n') ('\n') (' typedef struct __jmp_buf jmp_buf[1];\n') ('\n') ('-#endif /* _SETJMP_H */\n') 
              ('+#endif /* _KLIBC_ARCHSETJMP_H */\n') ('diff --git a/klibc/README b/klibc/README\n') ('--- a/klibc/README\n') ('+++ b/klibc/README\n') 
              ('@@ -1,1 +1,4 @@\n') (' This is a simple readme file.\n') ('+And we add a few\n') ('+lines at the\n') ('+end of it.\n') 
              ('diff --git a/klibc/README b/klibc/arch/README\n') ('copy from klibc/README\n') ('copy to klibc/arch/README\n') ('--- a/klibc/README\n') 
              ('+++ b/klibc/arch/README\n') ('@@ -1,1 +1,3 @@\n') (' This is a simple readme file.\n') ('+And we copy it to one level down, and\n') 
              ('+add a few lines at the end of it.\n')
            }
          do_expansion: False
          here_end: EOF
          was_filled: True
          spids: [60]
        )
      ]
    )
    (Pipeline
      children: [
        (C {(find)} {(klibc)} {(-type)} {(f)} {(-print)})
        (C {(xargs)} {(git)} {(update-index)} {(--add)} {(--)})
      ]
      negated: False
    )
    (C {(test_expect_success)} {(SQ <'check rename/copy patch'>)} {(SQ <'git apply --check patch'>)})
    (C {(test_expect_success)} {(SQ <'apply rename/copy patch'>)} {(SQ <'git apply --index patch'>)})
    (C {(test_done)})
  ]
)