(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:'Test cherry-pick -x and -s' span_id:6))}
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (command.ShFunction
      name: pristine_detach
      body: 
        (command.BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp]
              children: [
                (C {(git)} {(cherry-pick)} {(--quit)})
                (C {(git)} {(checkout)} {(-f)} {(DQ ($ Id.VSub_Number '$1') ('^0'))})
                (C {(git)} {(read-tree)} {(-u)} {(--reset)} {(HEAD)})
                (C {(git)} {(clean)} {(-d)} {(-f)} {(-f)} {(-q)} {(-x)})
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:mesg_one_line)
          op: assign_op.Equal
          rhs: {(SQ (Token id:Id.Lit_Chars val:'base: commit message' span_id:78))}
          spids: [76]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:mesg_no_footer)
          op: assign_op.Equal
          rhs: 
            {(DQ ($ Id.VSub_DollarName '$mesg_one_line') ('\n') ('\n') (OneWordBodyThatsNotA-S-o-B))}
          spids: [82]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:mesg_with_footer)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ($ Id.VSub_DollarName '$mesg_no_footer') ('\n') ('\n') ('Signed-off-by: ') 
                ($ Id.VSub_DollarName '$GIT_COMMITTER_NAME') (' <') ($ Id.VSub_DollarName '$GIT_COMMITTER_EMAIL') ('>\n') 
                ('Signed-off-by: A.U. Thor <author@example.com>\n') ('Signed-off-by: B.U. Thor <buthor@example.com>')
              )
            }
          spids: [91]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:mesg_broken_footer)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ($ Id.VSub_DollarName '$mesg_no_footer') ('\n') ('\n') 
                ('The signed-off-by string should begin with the words Signed-off-by followed\n') ('by a colon and space, and then the signers name and email address. e.g.\n') ('Signed-off-by: ') 
                ($ Id.VSub_DollarName '$GIT_COMMITTER_NAME') (' <') ($ Id.VSub_DollarName '$GIT_COMMITTER_EMAIL') ('>')
              )
            }
          spids: [106]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:mesg_with_footer_sob)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ($ Id.VSub_DollarName '$mesg_with_footer') ('\n') ('Signed-off-by: ') 
                ($ Id.VSub_DollarName '$GIT_COMMITTER_NAME') (' <') ($ Id.VSub_DollarName '$GIT_COMMITTER_EMAIL') ('>')
              )
            }
          spids: [121]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:mesg_with_cherry_footer)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ($ Id.VSub_DollarName '$mesg_with_footer_sob') ('\n') 
                ('(cherry picked from commit da39a3ee5e6b4b0d3255bfef95601890afd80709)\n') ('Tested-by: C.U. Thor <cuthor@example.com>')
              )
            }
          spids: [133]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:mesg_unclean)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ($ Id.VSub_DollarName '$mesg_one_line') ('\n') ('\n') ('\n') ('leading empty lines\n') 
                ('\n') ('\n') ('consecutive empty lines\n') ('\n') ('# hash tag comment\n') ('\n') ('trailing empty lines\n') 
                ('\n') ('\n')
              )
            }
          spids: [142]
        )
      ]
    )
    (C {(test_expect_success)} {(setup)} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:166) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config advice.detachedhead false &&\n'
            span_id: 167
          ) (Token id:Id.Lit_Chars val:'\techo unrelated >unrelated &&\n' span_id:168) 
          (Token id:Id.Lit_Chars val:'\tgit add unrelated &&\n' span_id:169) (Token id:Id.Lit_Chars val:'\ttest_commit initial foo a &&\n' span_id:170) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_commit "$mesg_one_line" foo b mesg-one-line &&\n'
            span_id: 171
          ) (Token id:Id.Lit_Chars val:'\tgit reset --hard initial &&\n' span_id:172) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_commit "$mesg_no_footer" foo b mesg-no-footer &&\n'
            span_id: 173
          ) (Token id:Id.Lit_Chars val:'\tgit reset --hard initial &&\n' span_id:174) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_commit "$mesg_broken_footer" foo b mesg-broken-footer &&\n'
            span_id: 175
          ) (Token id:Id.Lit_Chars val:'\tgit reset --hard initial &&\n' span_id:176) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_commit "$mesg_with_footer" foo b mesg-with-footer &&\n'
            span_id: 177
          ) (Token id:Id.Lit_Chars val:'\tgit reset --hard initial &&\n' span_id:178) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_commit "$mesg_with_footer_sob" foo b mesg-with-footer-sob &&\n'
            span_id: 179
          ) (Token id:Id.Lit_Chars val:'\tgit reset --hard initial &&\n' span_id:180) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_commit "$mesg_with_cherry_footer" foo b mesg-with-cherry-footer &&\n'
            span_id: 181
          ) (Token id:Id.Lit_Chars val:'\tgit reset --hard initial &&\n' span_id:182) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_config commit.cleanup verbatim &&\n'
            span_id: 183
          ) (Token id:Id.Lit_Chars val:'\ttest_commit "$mesg_unclean" foo b mesg-unclean &&\n' span_id:184) 
          (Token id:Id.Lit_Chars val:'\ttest_unconfig commit.cleanup &&\n' span_id:185) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:186) 
          (Token id:Id.Lit_Chars val:'\ttest_commit conflicting unrelated\n' span_id:187)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'cherry-pick -x inserts blank line after one line subject'
            span_id: 194
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:198) 
          (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:199) (Token id:Id.Lit_Chars val:'\tsha1=$(git rev-parse mesg-one-line^0) &&\n' span_id:200) 
          (Token id:Id.Lit_Chars val:'\tgit cherry-pick -x mesg-one-line &&\n' span_id:201) (Token id:Id.Lit_Chars val:'\tcat <<-EOF >expect &&\n' span_id:202) 
          (Token id:Id.Lit_Chars val:'\t\t$mesg_one_line\n' span_id:203) (Token id:Id.Lit_Chars val:'\n' span_id:204) 
          (Token id:Id.Lit_Chars val:'\t\t(cherry picked from commit $sha1)\n' span_id:205) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:206) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit log -1 --pretty=format:%B >actual &&\n'
            span_id: 207
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:208)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'cherry-pick -s inserts blank line after one line subject'
            span_id: 215
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:219) 
          (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:220) (Token id:Id.Lit_Chars val:'\tgit cherry-pick -s mesg-one-line &&\n' span_id:221) 
          (Token id:Id.Lit_Chars val:'\tcat <<-EOF >expect &&\n' span_id:222) (Token id:Id.Lit_Chars val:'\t\t$mesg_one_line\n' span_id:223) 
          (Token id:Id.Lit_Chars val:'\n' span_id:224) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tSigned-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>\n'
            span_id: 225
          ) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:226) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit log -1 --pretty=format:%B >actual &&\n'
            span_id: 227
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:228)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'cherry-pick -s inserts blank line after non-conforming footer'
            span_id: 235
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:239) 
          (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:240) (Token id:Id.Lit_Chars val:'\tgit cherry-pick -s mesg-broken-footer &&\n' span_id:241) 
          (Token id:Id.Lit_Chars val:'\tcat <<-EOF >expect &&\n' span_id:242) (Token id:Id.Lit_Chars val:'\t\t$mesg_broken_footer\n' span_id:243) 
          (Token id:Id.Lit_Chars val:'\n' span_id:244) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tSigned-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>\n'
            span_id: 245
          ) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:246) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit log -1 --pretty=format:%B >actual &&\n'
            span_id: 247
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:248)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'cherry-pick -x inserts blank line when conforming footer not found'
            span_id: 255
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:259) 
          (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:260) (Token id:Id.Lit_Chars val:'\tsha1=$(git rev-parse mesg-no-footer^0) &&\n' span_id:261) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit cherry-pick -x mesg-no-footer &&\n'
            span_id: 262
          ) (Token id:Id.Lit_Chars val:'\tcat <<-EOF >expect &&\n' span_id:263) 
          (Token id:Id.Lit_Chars val:'\t\t$mesg_no_footer\n' span_id:264) (Token id:Id.Lit_Chars val:'\n' span_id:265) 
          (Token id:Id.Lit_Chars val:'\t\t(cherry picked from commit $sha1)\n' span_id:266) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:267) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit log -1 --pretty=format:%B >actual &&\n'
            span_id: 268
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:269)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'cherry-pick -s inserts blank line when conforming footer not found'
            span_id: 276
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:280) 
          (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:281) (Token id:Id.Lit_Chars val:'\tgit cherry-pick -s mesg-no-footer &&\n' span_id:282) 
          (Token id:Id.Lit_Chars val:'\tcat <<-EOF >expect &&\n' span_id:283) (Token id:Id.Lit_Chars val:'\t\t$mesg_no_footer\n' span_id:284) 
          (Token id:Id.Lit_Chars val:'\n' span_id:285) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tSigned-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>\n'
            span_id: 286
          ) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:287) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit log -1 --pretty=format:%B >actual &&\n'
            span_id: 288
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:289)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'cherry-pick -x -s inserts blank line when conforming footer not found'
            span_id: 296
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:300) 
          (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:301) (Token id:Id.Lit_Chars val:'\tsha1=$(git rev-parse mesg-no-footer^0) &&\n' span_id:302) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit cherry-pick -x -s mesg-no-footer &&\n'
            span_id: 303
          ) (Token id:Id.Lit_Chars val:'\tcat <<-EOF >expect &&\n' span_id:304) 
          (Token id:Id.Lit_Chars val:'\t\t$mesg_no_footer\n' span_id:305) (Token id:Id.Lit_Chars val:'\n' span_id:306) 
          (Token id:Id.Lit_Chars val:'\t\t(cherry picked from commit $sha1)\n' span_id:307) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tSigned-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>\n'
            span_id: 308
          ) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:309) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit log -1 --pretty=format:%B >actual &&\n'
            span_id: 310
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:311)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'cherry-pick -s adds sob when last sob doesnt match committer'
            span_id: 318
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:322) 
          (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:323) (Token id:Id.Lit_Chars val:'\tgit cherry-pick -s mesg-with-footer &&\n' span_id:324) 
          (Token id:Id.Lit_Chars val:'\tcat <<-EOF >expect &&\n' span_id:325) (Token id:Id.Lit_Chars val:'\t\t$mesg_with_footer\n' span_id:326) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tSigned-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>\n'
            span_id: 327
          ) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:328) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit log -1 --pretty=format:%B >actual &&\n'
            span_id: 329
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:330)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'cherry-pick -x -s adds sob when last sob doesnt match committer'
            span_id: 337
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:341) 
          (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:342) (Token id:Id.Lit_Chars val:'\tsha1=$(git rev-parse mesg-with-footer^0) &&\n' span_id:343) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit cherry-pick -x -s mesg-with-footer &&\n'
            span_id: 344
          ) (Token id:Id.Lit_Chars val:'\tcat <<-EOF >expect &&\n' span_id:345) 
          (Token id:Id.Lit_Chars val:'\t\t$mesg_with_footer\n' span_id:346) (Token id:Id.Lit_Chars val:'\t\t(cherry picked from commit $sha1)\n' span_id:347) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tSigned-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>\n'
            span_id: 348
          ) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:349) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit log -1 --pretty=format:%B >actual &&\n'
            span_id: 350
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:351)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'cherry-pick -s refrains from adding duplicate trailing sob'
            span_id: 358
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:362) 
          (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:363) (Token id:Id.Lit_Chars val:'\tgit cherry-pick -s mesg-with-footer-sob &&\n' span_id:364) 
          (Token id:Id.Lit_Chars val:'\tcat <<-EOF >expect &&\n' span_id:365) (Token id:Id.Lit_Chars val:'\t\t$mesg_with_footer_sob\n' span_id:366) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:367) (Token id:Id.Lit_Chars val:'\tgit log -1 --pretty=format:%B >actual &&\n' span_id:368) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:369)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'cherry-pick -x -s adds sob even when trailing sob exists for committer'
            span_id: 376
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:380) 
          (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:381) (Token id:Id.Lit_Chars val:'\tsha1=$(git rev-parse mesg-with-footer-sob^0) &&\n' span_id:382) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit cherry-pick -x -s mesg-with-footer-sob &&\n'
            span_id: 383
          ) (Token id:Id.Lit_Chars val:'\tcat <<-EOF >expect &&\n' span_id:384) 
          (Token id:Id.Lit_Chars val:'\t\t$mesg_with_footer_sob\n' span_id:385) (Token id:Id.Lit_Chars val:'\t\t(cherry picked from commit $sha1)\n' span_id:386) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tSigned-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>\n'
            span_id: 387
          ) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:388) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit log -1 --pretty=format:%B >actual &&\n'
            span_id: 389
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:390)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'cherry-pick -x treats "(cherry picked from..." line as part of footer'
            span_id: 397
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:401) 
          (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:402) (Token id:Id.Lit_Chars val:'\tsha1=$(git rev-parse mesg-with-cherry-footer^0) &&\n' span_id:403) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit cherry-pick -x mesg-with-cherry-footer &&\n'
            span_id: 404
          ) (Token id:Id.Lit_Chars val:'\tcat <<-EOF >expect &&\n' span_id:405) 
          (Token id:Id.Lit_Chars val:'\t\t$mesg_with_cherry_footer\n' span_id:406) (Token id:Id.Lit_Chars val:'\t\t(cherry picked from commit $sha1)\n' span_id:407) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:408) (Token id:Id.Lit_Chars val:'\tgit log -1 --pretty=format:%B >actual &&\n' span_id:409) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:410)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'cherry-pick -s treats "(cherry picked from..." line as part of footer'
            span_id: 417
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:421) 
          (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:422) (Token id:Id.Lit_Chars val:'\tgit cherry-pick -s mesg-with-cherry-footer &&\n' span_id:423) 
          (Token id:Id.Lit_Chars val:'\tcat <<-EOF >expect &&\n' span_id:424) (Token id:Id.Lit_Chars val:'\t\t$mesg_with_cherry_footer\n' span_id:425) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tSigned-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>\n'
            span_id: 426
          ) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:427) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit log -1 --pretty=format:%B >actual &&\n'
            span_id: 428
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:429)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'cherry-pick -x -s treats "(cherry picked from..." line as part of footer'
            span_id: 436
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:440) 
          (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:441) (Token id:Id.Lit_Chars val:'\tsha1=$(git rev-parse mesg-with-cherry-footer^0) &&\n' span_id:442) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit cherry-pick -x -s mesg-with-cherry-footer &&\n'
            span_id: 443
          ) (Token id:Id.Lit_Chars val:'\tcat <<-EOF >expect &&\n' span_id:444) 
          (Token id:Id.Lit_Chars val:'\t\t$mesg_with_cherry_footer\n' span_id:445) (Token id:Id.Lit_Chars val:'\t\t(cherry picked from commit $sha1)\n' span_id:446) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tSigned-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>\n'
            span_id: 447
          ) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:448) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit log -1 --pretty=format:%B >actual &&\n'
            span_id: 449
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:450)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'cherry-pick preserves commit message' span_id:457))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:461) 
          (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:462) (Token id:Id.Lit_Chars val:'\tprintf "$mesg_unclean" >expect &&\n' span_id:463) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit log -1 --pretty=format:%B mesg-unclean >actual &&\n'
            span_id: 464
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual &&\n' span_id:465) 
          (Token id:Id.Lit_Chars val:'\tgit cherry-pick mesg-unclean &&\n' span_id:466) (Token id:Id.Lit_Chars val:'\tgit log -1 --pretty=format:%B >actual &&\n' span_id:467) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:468)
        )
      }
    )
    (C {(test_done)})
  ]
)