(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 notes merging with auto-resolving strategies'
                  span_id: 15
                )
              )
            }
          spids: [13]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup commits' span_id:30))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:34) 
          (Token id:Id.Lit_Chars val:'\ttest_commit 1st &&\n' span_id:35) (Token id:Id.Lit_Chars val:'\ttest_commit 2nd &&\n' span_id:36) 
          (Token id:Id.Lit_Chars val:'\ttest_commit 3rd &&\n' span_id:37) (Token id:Id.Lit_Chars val:'\ttest_commit 4th &&\n' span_id:38) 
          (Token id:Id.Lit_Chars val:'\ttest_commit 5th &&\n' span_id:39) (Token id:Id.Lit_Chars val:'\ttest_commit 6th &&\n' span_id:40) 
          (Token id:Id.Lit_Chars val:'\ttest_commit 7th &&\n' span_id:41) (Token id:Id.Lit_Chars val:'\ttest_commit 8th &&\n' span_id:42) 
          (Token id:Id.Lit_Chars val:'\ttest_commit 9th &&\n' span_id:43) (Token id:Id.Lit_Chars val:'\ttest_commit 10th &&\n' span_id:44) 
          (Token id:Id.Lit_Chars val:'\ttest_commit 11th &&\n' span_id:45) (Token id:Id.Lit_Chars val:'\ttest_commit 12th &&\n' span_id:46) 
          (Token id:Id.Lit_Chars val:'\ttest_commit 13th &&\n' span_id:47) (Token id:Id.Lit_Chars val:'\ttest_commit 14th &&\n' span_id:48) 
          (Token id:Id.Lit_Chars val:'\ttest_commit 15th\n' span_id:49)
        )
      }
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:commit_sha1)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:54)
                command_list: 
                  (command.CommandList
                    children: [
                      (C {(git)} {(rev-parse)} 
                        {(1st) (Id.Lit_Other '^') (Id.Lit_LBrace '{') (commit) (Id.Lit_RBrace '}')}
                      )
                    ]
                  )
              )
            }
          spids: [53]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:commit_sha2)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:67)
                command_list: 
                  (command.CommandList
                    children: [
                      (C {(git)} {(rev-parse)} 
                        {(2nd) (Id.Lit_Other '^') (Id.Lit_LBrace '{') (commit) (Id.Lit_RBrace '}')}
                      )
                    ]
                  )
              )
            }
          spids: [66]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:commit_sha3)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:80)
                command_list: 
                  (command.CommandList
                    children: [
                      (C {(git)} {(rev-parse)} 
                        {(3rd) (Id.Lit_Other '^') (Id.Lit_LBrace '{') (commit) (Id.Lit_RBrace '}')}
                      )
                    ]
                  )
              )
            }
          spids: [79]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:commit_sha4)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:93)
                command_list: 
                  (command.CommandList
                    children: [
                      (C {(git)} {(rev-parse)} 
                        {(4th) (Id.Lit_Other '^') (Id.Lit_LBrace '{') (commit) (Id.Lit_RBrace '}')}
                      )
                    ]
                  )
              )
            }
          spids: [92]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:commit_sha5)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:106)
                command_list: 
                  (command.CommandList
                    children: [
                      (C {(git)} {(rev-parse)} 
                        {(5th) (Id.Lit_Other '^') (Id.Lit_LBrace '{') (commit) (Id.Lit_RBrace '}')}
                      )
                    ]
                  )
              )
            }
          spids: [105]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:commit_sha6)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:119)
                command_list: 
                  (command.CommandList
                    children: [
                      (C {(git)} {(rev-parse)} 
                        {(6th) (Id.Lit_Other '^') (Id.Lit_LBrace '{') (commit) (Id.Lit_RBrace '}')}
                      )
                    ]
                  )
              )
            }
          spids: [118]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:commit_sha7)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:132)
                command_list: 
                  (command.CommandList
                    children: [
                      (C {(git)} {(rev-parse)} 
                        {(7th) (Id.Lit_Other '^') (Id.Lit_LBrace '{') (commit) (Id.Lit_RBrace '}')}
                      )
                    ]
                  )
              )
            }
          spids: [131]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:commit_sha8)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:145)
                command_list: 
                  (command.CommandList
                    children: [
                      (C {(git)} {(rev-parse)} 
                        {(8th) (Id.Lit_Other '^') (Id.Lit_LBrace '{') (commit) (Id.Lit_RBrace '}')}
                      )
                    ]
                  )
              )
            }
          spids: [144]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:commit_sha9)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:158)
                command_list: 
                  (command.CommandList
                    children: [
                      (C {(git)} {(rev-parse)} 
                        {(9th) (Id.Lit_Other '^') (Id.Lit_LBrace '{') (commit) (Id.Lit_RBrace '}')}
                      )
                    ]
                  )
              )
            }
          spids: [157]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:commit_sha10)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:171)
                command_list: 
                  (command.CommandList
                    children: [
                      (C {(git)} {(rev-parse)} 
                        {(10th) (Id.Lit_Other '^') (Id.Lit_LBrace '{') (commit) (Id.Lit_RBrace '}')}
                      )
                    ]
                  )
              )
            }
          spids: [170]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:commit_sha11)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:184)
                command_list: 
                  (command.CommandList
                    children: [
                      (C {(git)} {(rev-parse)} 
                        {(11th) (Id.Lit_Other '^') (Id.Lit_LBrace '{') (commit) (Id.Lit_RBrace '}')}
                      )
                    ]
                  )
              )
            }
          spids: [183]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:commit_sha12)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:197)
                command_list: 
                  (command.CommandList
                    children: [
                      (C {(git)} {(rev-parse)} 
                        {(12th) (Id.Lit_Other '^') (Id.Lit_LBrace '{') (commit) (Id.Lit_RBrace '}')}
                      )
                    ]
                  )
              )
            }
          spids: [196]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:commit_sha13)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:210)
                command_list: 
                  (command.CommandList
                    children: [
                      (C {(git)} {(rev-parse)} 
                        {(13th) (Id.Lit_Other '^') (Id.Lit_LBrace '{') (commit) (Id.Lit_RBrace '}')}
                      )
                    ]
                  )
              )
            }
          spids: [209]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:commit_sha14)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:223)
                command_list: 
                  (command.CommandList
                    children: [
                      (C {(git)} {(rev-parse)} 
                        {(14th) (Id.Lit_Other '^') (Id.Lit_LBrace '{') (commit) (Id.Lit_RBrace '}')}
                      )
                    ]
                  )
              )
            }
          spids: [222]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:commit_sha15)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:236)
                command_list: 
                  (command.CommandList
                    children: [
                      (C {(git)} {(rev-parse)} 
                        {(15th) (Id.Lit_Other '^') (Id.Lit_LBrace '{') (commit) (Id.Lit_RBrace '}')}
                      )
                    ]
                  )
              )
            }
          spids: [235]
        )
      ]
    )
    (command.ShFunction
      name: verify_notes
      body: 
        (command.BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:notes_ref)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number '$1'))}
                  spids: [257]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:suffix)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number '$2'))}
                  spids: [263]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp]
              children: [
                (command.Pipeline
                  children: [
                    (C {(git)} {(-c)} 
                      {(core.notesRef) (Id.Lit_Equals '=') 
                        (DQ (refs/notes/) ($ Id.VSub_DollarName '$notes_ref'))
                      } {(notes)}
                    )
                    (command.Simple
                      words: [{(sort)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_Great val:'>' span_id:287)
                          fd: -1
                          arg_word: {(DQ (output_notes_) ($ Id.VSub_DollarName '$suffix'))}
                        )
                      ]
                    )
                  ]
                  negated: F
                )
                (C {(test_cmp)} {(DQ (expect_notes_) ($ Id.VSub_DollarName '$suffix'))} 
                  {(DQ (output_notes_) ($ Id.VSub_DollarName '$suffix'))}
                )
                (command.Simple
                  words: [
                    {(git)}
                    {(-c)}
                    {(core.notesRef) (Id.Lit_Equals '=') 
                      (DQ (refs/notes/) ($ Id.VSub_DollarName '$notes_ref'))
                    }
                    {(log)}
                    {(--format) (Id.Lit_Equals '=') (DQ ('%H %s%n%N'))}
                  ]
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_Great val:'>' span_id:332)
                      fd: -1
                      arg_word: {(DQ (output_log_) ($ Id.VSub_DollarName '$suffix'))}
                    )
                  ]
                )
                (C {(test_cmp)} {(DQ (expect_log_) ($ Id.VSub_DollarName '$suffix'))} 
                  {(DQ (output_log_) ($ Id.VSub_DollarName '$suffix'))}
                )
              ]
            )
          ]
        )
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup merge base (x)' span_id:359))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:363) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config core.notesRef refs/notes/x &&\n'
            span_id: 364
          ) (Token id:Id.Lit_Chars val:'\tgit notes add -m "x notes on 6th commit" 6th &&\n' span_id:365) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit notes add -m "x notes on 7th commit" 7th &&\n'
            span_id: 366
          ) (Token id:Id.Lit_Chars val:'\tgit notes add -m "x notes on 8th commit" 8th &&\n' span_id:367) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit notes add -m "x notes on 9th commit" 9th &&\n'
            span_id: 368
          ) (Token id:Id.Lit_Chars val:'\tgit notes add -m "x notes on 10th commit" 10th &&\n' span_id:369) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit notes add -m "x notes on 11th commit" 11th &&\n'
            span_id: 370
          ) (Token id:Id.Lit_Chars val:'\tgit notes add -m "x notes on 12th commit" 12th &&\n' span_id:371) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit notes add -m "x notes on 13th commit" 13th &&\n'
            span_id: 372
          ) (Token id:Id.Lit_Chars val:'\tgit notes add -m "x notes on 14th commit" 14th &&\n' span_id:373) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit notes add -m "x notes on 15th commit" 15th\n'
            span_id: 374
          )
        )
      }
    )
    (command.Pipeline
      children: [
        (command.Simple
          words: [{(cat)}]
          redirects: [
            (redir.HereDoc
              op: (Token id:Id.Redir_DLess val:'<<' span_id:380)
              fd: -1
              here_begin: {(EOF)}
              here_end_span_id: 421
              stdin_parts: [
                ('457a85d6c814ea208550f15fcc48f804ac8dc023 ')
                ($ Id.VSub_DollarName '$commit_sha15')
                ('\n')
                ('b0c95b954301d69da2bc3723f4cb1680d355937c ')
                ($ Id.VSub_DollarName '$commit_sha14')
                ('\n')
                ('5d30216a129eeffa97d9694ffe8c74317a560315 ')
                ($ Id.VSub_DollarName '$commit_sha13')
                ('\n')
                ('dd161bc149470fd890dd4ab52a4cbd79bbd18c36 ')
                ($ Id.VSub_DollarName '$commit_sha12')
                ('\n')
                ('7abbc45126d680336fb24294f013a7cdfa3ed545 ')
                ($ Id.VSub_DollarName '$commit_sha11')
                ('\n')
                ('b8d03e173f67f6505a76f6e00cf93440200dd9be ')
                ($ Id.VSub_DollarName '$commit_sha10')
                ('\n')
                ('20c613c835011c48a5abe29170a2402ca6354910 ')
                ($ Id.VSub_DollarName '$commit_sha9')
                ('\n')
                ('a3daf8a1e4e5dc3409a303ad8481d57bfea7f5d6 ')
                ($ Id.VSub_DollarName '$commit_sha8')
                ('\n')
                ('897003322b53bc6ca098e9324ee508362347e734 ')
                ($ Id.VSub_DollarName '$commit_sha7')
                ('\n')
                ('11d97fdebfa5ceee540a3da07bce6fa0222bc082 ')
                ($ Id.VSub_DollarName '$commit_sha6')
                ('\n')
              ]
            )
          ]
        )
        (command.Simple
          words: [{(sort)}]
          redirects: [
            (redir.Redir
              op: (Token id:Id.Redir_Great val:'>' span_id:387)
              fd: -1
              arg_word: {(expect_notes_x)}
            )
          ]
        )
      ]
      negated: F
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:425)
          fd: -1
          arg_word: {(expect_log_x)}
        )
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:428)
          fd: -1
          here_begin: {(EOF)}
          here_end_span_id: 487
          stdin_parts: [
            ($ Id.VSub_DollarName '$commit_sha15')
            (' 15th\n')
            ('x notes on 15th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha14')
            (' 14th\n')
            ('x notes on 14th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha13')
            (' 13th\n')
            ('x notes on 13th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha12')
            (' 12th\n')
            ('x notes on 12th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha11')
            (' 11th\n')
            ('x notes on 11th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha10')
            (' 10th\n')
            ('x notes on 10th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha9')
            (' 9th\n')
            ('x notes on 9th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha8')
            (' 8th\n')
            ('x notes on 8th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha7')
            (' 7th\n')
            ('x notes on 7th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha6')
            (' 6th\n')
            ('x notes on 6th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha5')
            (' 5th\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha4')
            (' 4th\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha3')
            (' 3rd\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha2')
            (' 2nd\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha1')
            (' 1st\n')
            ('\n')
          ]
        )
      ]
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'verify state of merge base (x)' span_id:492))} {(SQ (Token id:Id.Lit_Chars val:'verify_notes x x' span_id:496))}
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup local branch (y)' span_id:503))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:507) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit update-ref refs/notes/y refs/notes/x &&\n'
            span_id: 508
          ) (Token id:Id.Lit_Chars val:'\tgit config core.notesRef refs/notes/y &&\n' span_id:509) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit notes add -f -m "y notes on 3rd commit" 3rd &&\n'
            span_id: 510
          ) (Token id:Id.Lit_Chars val:'\tgit notes add -f -m "y notes on 4th commit" 4th &&\n' span_id:511) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit notes add -f -m "y notes on 5th commit" 5th &&\n'
            span_id: 512
          ) (Token id:Id.Lit_Chars val:'\tgit notes remove 6th &&\n' span_id:513) 
          (Token id:Id.Lit_Chars val:'\tgit notes remove 7th &&\n' span_id:514) (Token id:Id.Lit_Chars val:'\tgit notes remove 8th &&\n' span_id:515) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit notes add -f -m "y notes on 12th commit" 12th &&\n'
            span_id: 516
          ) (Token id:Id.Lit_Chars val:'\tgit notes add -f -m "y notes on 13th commit" 13th &&\n' span_id:517) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit notes add -f -m "y notes on 14th commit" 14th &&\n'
            span_id: 518
          ) (Token id:Id.Lit_Chars val:'\tgit notes add -f -m "y notes on 15th commit" 15th\n' span_id:519)
        )
      }
    )
    (command.Pipeline
      children: [
        (command.Simple
          words: [{(cat)}]
          redirects: [
            (redir.HereDoc
              op: (Token id:Id.Redir_DLess val:'<<' span_id:525)
              fd: -1
              here_begin: {(EOF)}
              here_end_span_id: 566
              stdin_parts: [
                ('68b8630d25516028bed862719855b3d6768d7833 ')
                ($ Id.VSub_DollarName '$commit_sha15')
                ('\n')
                ('5de7ea7ad4f47e7ff91989fb82234634730f75df ')
                ($ Id.VSub_DollarName '$commit_sha14')
                ('\n')
                ('3a631fdb6f41b05b55d8f4baf20728ba8f6fccbc ')
                ($ Id.VSub_DollarName '$commit_sha13')
                ('\n')
                ('a66055fa82f7a03fe0c02a6aba3287a85abf7c62 ')
                ($ Id.VSub_DollarName '$commit_sha12')
                ('\n')
                ('7abbc45126d680336fb24294f013a7cdfa3ed545 ')
                ($ Id.VSub_DollarName '$commit_sha11')
                ('\n')
                ('b8d03e173f67f6505a76f6e00cf93440200dd9be ')
                ($ Id.VSub_DollarName '$commit_sha10')
                ('\n')
                ('20c613c835011c48a5abe29170a2402ca6354910 ')
                ($ Id.VSub_DollarName '$commit_sha9')
                ('\n')
                ('154508c7a0bcad82b6fe4b472bc4c26b3bf0825b ')
                ($ Id.VSub_DollarName '$commit_sha5')
                ('\n')
                ('e2bfd06a37dd2031684a59a6e2b033e212239c78 ')
                ($ Id.VSub_DollarName '$commit_sha4')
                ('\n')
                ('5772f42408c0dd6f097a7ca2d24de0e78d1c46b1 ')
                ($ Id.VSub_DollarName '$commit_sha3')
                ('\n')
              ]
            )
          ]
        )
        (command.Simple
          words: [{(sort)}]
          redirects: [
            (redir.Redir
              op: (Token id:Id.Redir_Great val:'>' span_id:532)
              fd: -1
              arg_word: {(expect_notes_y)}
            )
          ]
        )
      ]
      negated: F
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:570)
          fd: -1
          arg_word: {(expect_log_y)}
        )
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:573)
          fd: -1
          here_begin: {(EOF)}
          here_end_span_id: 632
          stdin_parts: [
            ($ Id.VSub_DollarName '$commit_sha15')
            (' 15th\n')
            ('y notes on 15th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha14')
            (' 14th\n')
            ('y notes on 14th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha13')
            (' 13th\n')
            ('y notes on 13th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha12')
            (' 12th\n')
            ('y notes on 12th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha11')
            (' 11th\n')
            ('x notes on 11th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha10')
            (' 10th\n')
            ('x notes on 10th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha9')
            (' 9th\n')
            ('x notes on 9th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha8')
            (' 8th\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha7')
            (' 7th\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha6')
            (' 6th\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha5')
            (' 5th\n')
            ('y notes on 5th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha4')
            (' 4th\n')
            ('y notes on 4th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha3')
            (' 3rd\n')
            ('y notes on 3rd commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha2')
            (' 2nd\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha1')
            (' 1st\n')
            ('\n')
          ]
        )
      ]
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'verify state of local branch (y)' span_id:637))} {(SQ (Token id:Id.Lit_Chars val:'verify_notes y y' span_id:641))}
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup remote branch (z)' span_id:648))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:652) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit update-ref refs/notes/z refs/notes/x &&\n'
            span_id: 653
          ) (Token id:Id.Lit_Chars val:'\tgit config core.notesRef refs/notes/z &&\n' span_id:654) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit notes add -f -m "z notes on 2nd commit" 2nd &&\n'
            span_id: 655
          ) (Token id:Id.Lit_Chars val:'\tgit notes add -f -m "y notes on 4th commit" 4th &&\n' span_id:656) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit notes add -f -m "z notes on 5th commit" 5th &&\n'
            span_id: 657
          ) (Token id:Id.Lit_Chars val:'\tgit notes remove 6th &&\n' span_id:658) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit notes add -f -m "z notes on 8th commit" 8th &&\n'
            span_id: 659
          ) (Token id:Id.Lit_Chars val:'\tgit notes remove 9th &&\n' span_id:660) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit notes add -f -m "z notes on 11th commit" 11th &&\n'
            span_id: 661
          ) (Token id:Id.Lit_Chars val:'\tgit notes remove 12th &&\n' span_id:662) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit notes add -f -m "y notes on 14th commit" 14th &&\n'
            span_id: 663
          ) (Token id:Id.Lit_Chars val:'\tgit notes add -f -m "z notes on 15th commit" 15th\n' span_id:664)
        )
      }
    )
    (command.Pipeline
      children: [
        (command.Simple
          words: [{(cat)}]
          redirects: [
            (redir.HereDoc
              op: (Token id:Id.Redir_DLess val:'<<' span_id:670)
              fd: -1
              here_begin: {(EOF)}
              here_end_span_id: 711
              stdin_parts: [
                ('9b4b2c61f0615412da3c10f98ff85b57c04ec765 ')
                ($ Id.VSub_DollarName '$commit_sha15')
                ('\n')
                ('5de7ea7ad4f47e7ff91989fb82234634730f75df ')
                ($ Id.VSub_DollarName '$commit_sha14')
                ('\n')
                ('5d30216a129eeffa97d9694ffe8c74317a560315 ')
                ($ Id.VSub_DollarName '$commit_sha13')
                ('\n')
                ('7e3c53503a3db8dd996cb62e37c66e070b44b54d ')
                ($ Id.VSub_DollarName '$commit_sha11')
                ('\n')
                ('b8d03e173f67f6505a76f6e00cf93440200dd9be ')
                ($ Id.VSub_DollarName '$commit_sha10')
                ('\n')
                ('851e1638784a884c7dd26c5d41f3340f6387413a ')
                ($ Id.VSub_DollarName '$commit_sha8')
                ('\n')
                ('897003322b53bc6ca098e9324ee508362347e734 ')
                ($ Id.VSub_DollarName '$commit_sha7')
                ('\n')
                ('99fc34adfc400b95c67b013115e37e31aa9a6d23 ')
                ($ Id.VSub_DollarName '$commit_sha5')
                ('\n')
                ('e2bfd06a37dd2031684a59a6e2b033e212239c78 ')
                ($ Id.VSub_DollarName '$commit_sha4')
                ('\n')
                ('283b48219aee9a4105f6cab337e789065c82c2b9 ')
                ($ Id.VSub_DollarName '$commit_sha2')
                ('\n')
              ]
            )
          ]
        )
        (command.Simple
          words: [{(sort)}]
          redirects: [
            (redir.Redir
              op: (Token id:Id.Redir_Great val:'>' span_id:677)
              fd: -1
              arg_word: {(expect_notes_z)}
            )
          ]
        )
      ]
      negated: F
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:715)
          fd: -1
          arg_word: {(expect_log_z)}
        )
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:718)
          fd: -1
          here_begin: {(EOF)}
          here_end_span_id: 777
          stdin_parts: [
            ($ Id.VSub_DollarName '$commit_sha15')
            (' 15th\n')
            ('z notes on 15th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha14')
            (' 14th\n')
            ('y notes on 14th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha13')
            (' 13th\n')
            ('x notes on 13th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha12')
            (' 12th\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha11')
            (' 11th\n')
            ('z notes on 11th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha10')
            (' 10th\n')
            ('x notes on 10th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha9')
            (' 9th\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha8')
            (' 8th\n')
            ('z notes on 8th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha7')
            (' 7th\n')
            ('x notes on 7th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha6')
            (' 6th\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha5')
            (' 5th\n')
            ('z notes on 5th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha4')
            (' 4th\n')
            ('y notes on 4th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha3')
            (' 3rd\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha2')
            (' 2nd\n')
            ('z notes on 2nd commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha1')
            (' 1st\n')
            ('\n')
          ]
        )
      ]
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'verify state of remote branch (z)' span_id:782))} {(SQ (Token id:Id.Lit_Chars val:'verify_notes z z' span_id:786))}
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'merge z into y with invalid strategy => Fail/No changes'
            span_id: 851
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:855) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config core.notesRef refs/notes/y &&\n'
            span_id: 856
          ) (Token id:Id.Lit_Chars val:'\ttest_must_fail git notes merge --strategy=foo z &&\n' span_id:857) 
          (Token id:Id.Lit_Chars val:'\t# Verify no changes (y)\n' span_id:858) (Token id:Id.Lit_Chars val:'\tverify_notes y y\n' span_id:859)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'merge z into y with invalid configuration option => Fail/No changes'
            span_id: 866
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:870) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config core.notesRef refs/notes/y &&\n'
            span_id: 871
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git -c notes.mergeStrategy="foo" notes merge z &&\n'
            span_id: 872
          ) (Token id:Id.Lit_Chars val:'\t# Verify no changes (y)\n' span_id:873) 
          (Token id:Id.Lit_Chars val:'\tverify_notes y y\n' span_id:874)
        )
      }
    )
    (command.Pipeline
      children: [
        (command.Simple
          words: [{(cat)}]
          redirects: [
            (redir.HereDoc
              op: (Token id:Id.Redir_DLess val:'<<' span_id:880)
              fd: -1
              here_begin: {(EOF)}
              here_end_span_id: 921
              stdin_parts: [
                ('68b8630d25516028bed862719855b3d6768d7833 ')
                ($ Id.VSub_DollarName '$commit_sha15')
                ('\n')
                ('5de7ea7ad4f47e7ff91989fb82234634730f75df ')
                ($ Id.VSub_DollarName '$commit_sha14')
                ('\n')
                ('3a631fdb6f41b05b55d8f4baf20728ba8f6fccbc ')
                ($ Id.VSub_DollarName '$commit_sha13')
                ('\n')
                ('a66055fa82f7a03fe0c02a6aba3287a85abf7c62 ')
                ($ Id.VSub_DollarName '$commit_sha12')
                ('\n')
                ('7e3c53503a3db8dd996cb62e37c66e070b44b54d ')
                ($ Id.VSub_DollarName '$commit_sha11')
                ('\n')
                ('b8d03e173f67f6505a76f6e00cf93440200dd9be ')
                ($ Id.VSub_DollarName '$commit_sha10')
                ('\n')
                ('154508c7a0bcad82b6fe4b472bc4c26b3bf0825b ')
                ($ Id.VSub_DollarName '$commit_sha5')
                ('\n')
                ('e2bfd06a37dd2031684a59a6e2b033e212239c78 ')
                ($ Id.VSub_DollarName '$commit_sha4')
                ('\n')
                ('5772f42408c0dd6f097a7ca2d24de0e78d1c46b1 ')
                ($ Id.VSub_DollarName '$commit_sha3')
                ('\n')
                ('283b48219aee9a4105f6cab337e789065c82c2b9 ')
                ($ Id.VSub_DollarName '$commit_sha2')
                ('\n')
              ]
            )
          ]
        )
        (command.Simple
          words: [{(sort)}]
          redirects: [
            (redir.Redir
              op: (Token id:Id.Redir_Great val:'>' span_id:887)
              fd: -1
              arg_word: {(expect_notes_ours)}
            )
          ]
        )
      ]
      negated: F
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:925)
          fd: -1
          arg_word: {(expect_log_ours)}
        )
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:928)
          fd: -1
          here_begin: {(EOF)}
          here_end_span_id: 987
          stdin_parts: [
            ($ Id.VSub_DollarName '$commit_sha15')
            (' 15th\n')
            ('y notes on 15th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha14')
            (' 14th\n')
            ('y notes on 14th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha13')
            (' 13th\n')
            ('y notes on 13th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha12')
            (' 12th\n')
            ('y notes on 12th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha11')
            (' 11th\n')
            ('z notes on 11th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha10')
            (' 10th\n')
            ('x notes on 10th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha9')
            (' 9th\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha8')
            (' 8th\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha7')
            (' 7th\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha6')
            (' 6th\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha5')
            (' 5th\n')
            ('y notes on 5th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha4')
            (' 4th\n')
            ('y notes on 4th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha3')
            (' 3rd\n')
            ('y notes on 3rd commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha2')
            (' 2nd\n')
            ('z notes on 2nd commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha1')
            (' 1st\n')
            ('\n')
          ]
        )
      ]
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'merge z into y with "ours" strategy => Non-conflicting 3-way merge'
            span_id: 992
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:996) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit notes merge --strategy=ours z &&\n'
            span_id: 997
          ) (Token id:Id.Lit_Chars val:'\tverify_notes y ours\n' span_id:998)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'reset to pre-merge state (y)' span_id:1005))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1009) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit update-ref refs/notes/y refs/notes/y^1 &&\n'
            span_id: 1010
          ) (Token id:Id.Lit_Chars val:'\t# Verify pre-merge state\n' span_id:1011) 
          (Token id:Id.Lit_Chars val:'\tverify_notes y y\n' span_id:1012)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'merge z into y with "ours" configuration option => Non-conflicting 3-way merge'
            span_id: 1019
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1023) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit -c notes.mergeStrategy="ours" notes merge z &&\n'
            span_id: 1024
          ) (Token id:Id.Lit_Chars val:'\tverify_notes y ours\n' span_id:1025)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'reset to pre-merge state (y)' span_id:1032))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1036) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit update-ref refs/notes/y refs/notes/y^1 &&\n'
            span_id: 1037
          ) (Token id:Id.Lit_Chars val:'\t# Verify pre-merge state\n' span_id:1038) 
          (Token id:Id.Lit_Chars val:'\tverify_notes y y\n' span_id:1039)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 
'merge z into y with "ours" per-ref configuration option => Non-conflicting 3-way merge'
            span_id: 1046
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1050) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit -c notes.y.mergeStrategy="ours" notes merge z &&\n'
            span_id: 1051
          ) (Token id:Id.Lit_Chars val:'\tverify_notes y ours\n' span_id:1052)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'reset to pre-merge state (y)' span_id:1059))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1063) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit update-ref refs/notes/y refs/notes/y^1 &&\n'
            span_id: 1064
          ) (Token id:Id.Lit_Chars val:'\t# Verify pre-merge state\n' span_id:1065) 
          (Token id:Id.Lit_Chars val:'\tverify_notes y y\n' span_id:1066)
        )
      }
    )
    (command.Pipeline
      children: [
        (command.Simple
          words: [{(cat)}]
          redirects: [
            (redir.HereDoc
              op: (Token id:Id.Redir_DLess val:'<<' span_id:1072)
              fd: -1
              here_begin: {(EOF)}
              here_end_span_id: 1113
              stdin_parts: [
                ('9b4b2c61f0615412da3c10f98ff85b57c04ec765 ')
                ($ Id.VSub_DollarName '$commit_sha15')
                ('\n')
                ('5de7ea7ad4f47e7ff91989fb82234634730f75df ')
                ($ Id.VSub_DollarName '$commit_sha14')
                ('\n')
                ('3a631fdb6f41b05b55d8f4baf20728ba8f6fccbc ')
                ($ Id.VSub_DollarName '$commit_sha13')
                ('\n')
                ('7e3c53503a3db8dd996cb62e37c66e070b44b54d ')
                ($ Id.VSub_DollarName '$commit_sha11')
                ('\n')
                ('b8d03e173f67f6505a76f6e00cf93440200dd9be ')
                ($ Id.VSub_DollarName '$commit_sha10')
                ('\n')
                ('851e1638784a884c7dd26c5d41f3340f6387413a ')
                ($ Id.VSub_DollarName '$commit_sha8')
                ('\n')
                ('99fc34adfc400b95c67b013115e37e31aa9a6d23 ')
                ($ Id.VSub_DollarName '$commit_sha5')
                ('\n')
                ('e2bfd06a37dd2031684a59a6e2b033e212239c78 ')
                ($ Id.VSub_DollarName '$commit_sha4')
                ('\n')
                ('5772f42408c0dd6f097a7ca2d24de0e78d1c46b1 ')
                ($ Id.VSub_DollarName '$commit_sha3')
                ('\n')
                ('283b48219aee9a4105f6cab337e789065c82c2b9 ')
                ($ Id.VSub_DollarName '$commit_sha2')
                ('\n')
              ]
            )
          ]
        )
        (command.Simple
          words: [{(sort)}]
          redirects: [
            (redir.Redir
              op: (Token id:Id.Redir_Great val:'>' span_id:1079)
              fd: -1
              arg_word: {(expect_notes_theirs)}
            )
          ]
        )
      ]
      negated: F
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:1117)
          fd: -1
          arg_word: {(expect_log_theirs)}
        )
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:1120)
          fd: -1
          here_begin: {(EOF)}
          here_end_span_id: 1179
          stdin_parts: [
            ($ Id.VSub_DollarName '$commit_sha15')
            (' 15th\n')
            ('z notes on 15th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha14')
            (' 14th\n')
            ('y notes on 14th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha13')
            (' 13th\n')
            ('y notes on 13th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha12')
            (' 12th\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha11')
            (' 11th\n')
            ('z notes on 11th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha10')
            (' 10th\n')
            ('x notes on 10th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha9')
            (' 9th\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha8')
            (' 8th\n')
            ('z notes on 8th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha7')
            (' 7th\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha6')
            (' 6th\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha5')
            (' 5th\n')
            ('z notes on 5th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha4')
            (' 4th\n')
            ('y notes on 4th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha3')
            (' 3rd\n')
            ('y notes on 3rd commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha2')
            (' 2nd\n')
            ('z notes on 2nd commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha1')
            (' 1st\n')
            ('\n')
          ]
        )
      ]
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'merge z into y with "theirs" strategy => Non-conflicting 3-way merge'
            span_id: 1184
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1188) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit notes merge --strategy=theirs z &&\n'
            span_id: 1189
          ) (Token id:Id.Lit_Chars val:'\tverify_notes y theirs\n' span_id:1190)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'reset to pre-merge state (y)' span_id:1197))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1201) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit update-ref refs/notes/y refs/notes/y^1 &&\n'
            span_id: 1202
          ) (Token id:Id.Lit_Chars val:'\t# Verify pre-merge state\n' span_id:1203) 
          (Token id:Id.Lit_Chars val:'\tverify_notes y y\n' span_id:1204)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 
'merge z into y with "theirs" strategy overriding configuration option "ours" => Non-conflicting 3-way merge'
            span_id: 1211
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1215) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit -c notes.mergeStrategy="ours" notes merge --strategy=theirs z &&\n'
            span_id: 1216
          ) (Token id:Id.Lit_Chars val:'\tverify_notes y theirs\n' span_id:1217)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'reset to pre-merge state (y)' span_id:1224))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1228) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit update-ref refs/notes/y refs/notes/y^1 &&\n'
            span_id: 1229
          ) (Token id:Id.Lit_Chars val:'\t# Verify pre-merge state\n' span_id:1230) 
          (Token id:Id.Lit_Chars val:'\tverify_notes y y\n' span_id:1231)
        )
      }
    )
    (command.Pipeline
      children: [
        (command.Simple
          words: [{(cat)}]
          redirects: [
            (redir.HereDoc
              op: (Token id:Id.Redir_DLess val:'<<' span_id:1237)
              fd: -1
              here_begin: {(EOF)}
              here_end_span_id: 1281
              stdin_parts: [
                ('7c4e546efd0fe939f876beb262ece02797880b54 ')
                ($ Id.VSub_DollarName '$commit_sha15')
                ('\n')
                ('5de7ea7ad4f47e7ff91989fb82234634730f75df ')
                ($ Id.VSub_DollarName '$commit_sha14')
                ('\n')
                ('3a631fdb6f41b05b55d8f4baf20728ba8f6fccbc ')
                ($ Id.VSub_DollarName '$commit_sha13')
                ('\n')
                ('a66055fa82f7a03fe0c02a6aba3287a85abf7c62 ')
                ($ Id.VSub_DollarName '$commit_sha12')
                ('\n')
                ('7e3c53503a3db8dd996cb62e37c66e070b44b54d ')
                ($ Id.VSub_DollarName '$commit_sha11')
                ('\n')
                ('b8d03e173f67f6505a76f6e00cf93440200dd9be ')
                ($ Id.VSub_DollarName '$commit_sha10')
                ('\n')
                ('851e1638784a884c7dd26c5d41f3340f6387413a ')
                ($ Id.VSub_DollarName '$commit_sha8')
                ('\n')
                ('6c841cc36ea496027290967ca96bd2bef54dbb47 ')
                ($ Id.VSub_DollarName '$commit_sha5')
                ('\n')
                ('e2bfd06a37dd2031684a59a6e2b033e212239c78 ')
                ($ Id.VSub_DollarName '$commit_sha4')
                ('\n')
                ('5772f42408c0dd6f097a7ca2d24de0e78d1c46b1 ')
                ($ Id.VSub_DollarName '$commit_sha3')
                ('\n')
                ('283b48219aee9a4105f6cab337e789065c82c2b9 ')
                ($ Id.VSub_DollarName '$commit_sha2')
                ('\n')
              ]
            )
          ]
        )
        (command.Simple
          words: [{(sort)}]
          redirects: [
            (redir.Redir
              op: (Token id:Id.Redir_Great val:'>' span_id:1244)
              fd: -1
              arg_word: {(expect_notes_union)}
            )
          ]
        )
      ]
      negated: F
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:1285)
          fd: -1
          arg_word: {(expect_log_union)}
        )
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:1288)
          fd: -1
          here_begin: {(EOF)}
          here_end_span_id: 1352
          stdin_parts: [
            ($ Id.VSub_DollarName '$commit_sha15')
            (' 15th\n')
            ('y notes on 15th commit\n')
            ('\n')
            ('z notes on 15th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha14')
            (' 14th\n')
            ('y notes on 14th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha13')
            (' 13th\n')
            ('y notes on 13th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha12')
            (' 12th\n')
            ('y notes on 12th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha11')
            (' 11th\n')
            ('z notes on 11th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha10')
            (' 10th\n')
            ('x notes on 10th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha9')
            (' 9th\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha8')
            (' 8th\n')
            ('z notes on 8th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha7')
            (' 7th\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha6')
            (' 6th\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha5')
            (' 5th\n')
            ('y notes on 5th commit\n')
            ('\n')
            ('z notes on 5th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha4')
            (' 4th\n')
            ('y notes on 4th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha3')
            (' 3rd\n')
            ('y notes on 3rd commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha2')
            (' 2nd\n')
            ('z notes on 2nd commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha1')
            (' 1st\n')
            ('\n')
          ]
        )
      ]
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'merge z into y with "union" strategy => Non-conflicting 3-way merge'
            span_id: 1357
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1361) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit notes merge --strategy=union z &&\n'
            span_id: 1362
          ) (Token id:Id.Lit_Chars val:'\tverify_notes y union\n' span_id:1363)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'reset to pre-merge state (y)' span_id:1370))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1374) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit update-ref refs/notes/y refs/notes/y^1 &&\n'
            span_id: 1375
          ) (Token id:Id.Lit_Chars val:'\t# Verify pre-merge state\n' span_id:1376) 
          (Token id:Id.Lit_Chars val:'\tverify_notes y y\n' span_id:1377)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 
'merge z into y with "union" strategy overriding per-ref configuration => Non-conflicting 3-way merge'
            span_id: 1384
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1388) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit -c notes.y.mergeStrategy="theirs" notes merge --strategy=union z &&\n'
            span_id: 1389
          ) (Token id:Id.Lit_Chars val:'\tverify_notes y union\n' span_id:1390)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'reset to pre-merge state (y)' span_id:1397))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1401) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit update-ref refs/notes/y refs/notes/y^1 &&\n'
            span_id: 1402
          ) (Token id:Id.Lit_Chars val:'\t# Verify pre-merge state\n' span_id:1403) 
          (Token id:Id.Lit_Chars val:'\tverify_notes y y\n' span_id:1404)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 
'merge z into y with "union" per-ref overriding general configuration => Non-conflicting 3-way merge'
            span_id: 1411
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1415) 
          (Token
            id: Id.Lit_Chars
            val: 
'\tgit -c notes.y.mergeStrategy="union" -c notes.mergeStrategy="theirs" notes merge z &&\n'
            span_id: 1416
          ) (Token id:Id.Lit_Chars val:'\tverify_notes y union\n' span_id:1417)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'reset to pre-merge state (y)' span_id:1424))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1428) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit update-ref refs/notes/y refs/notes/y^1 &&\n'
            span_id: 1429
          ) (Token id:Id.Lit_Chars val:'\t# Verify pre-merge state\n' span_id:1430) 
          (Token id:Id.Lit_Chars val:'\tverify_notes y y\n' span_id:1431)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 
'merge z into y with "manual" per-ref only checks specific ref configuration => Conflicting 3-way merge'
            span_id: 1438
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1442) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git -c notes.z.mergeStrategy="union" notes merge z &&\n'
            span_id: 1443
          ) (Token id:Id.Lit_Chars val:'\tgit notes merge --abort &&\n' span_id:1444) 
          (Token id:Id.Lit_Chars val:'\tverify_notes y y\n' span_id:1445)
        )
      }
    )
    (command.Pipeline
      children: [
        (command.Simple
          words: [{(cat)}]
          redirects: [
            (redir.HereDoc
              op: (Token id:Id.Redir_DLess val:'<<' span_id:1451)
              fd: -1
              here_begin: {(EOF)}
              here_end_span_id: 1495
              stdin_parts: [
                ('d682107b8bf7a7aea1e537a8d5cb6a12b60135f1 ')
                ($ Id.VSub_DollarName '$commit_sha15')
                ('\n')
                ('5de7ea7ad4f47e7ff91989fb82234634730f75df ')
                ($ Id.VSub_DollarName '$commit_sha14')
                ('\n')
                ('3a631fdb6f41b05b55d8f4baf20728ba8f6fccbc ')
                ($ Id.VSub_DollarName '$commit_sha13')
                ('\n')
                ('a66055fa82f7a03fe0c02a6aba3287a85abf7c62 ')
                ($ Id.VSub_DollarName '$commit_sha12')
                ('\n')
                ('7e3c53503a3db8dd996cb62e37c66e070b44b54d ')
                ($ Id.VSub_DollarName '$commit_sha11')
                ('\n')
                ('b8d03e173f67f6505a76f6e00cf93440200dd9be ')
                ($ Id.VSub_DollarName '$commit_sha10')
                ('\n')
                ('851e1638784a884c7dd26c5d41f3340f6387413a ')
                ($ Id.VSub_DollarName '$commit_sha8')
                ('\n')
                ('357b6ca14c7afd59b7f8b8aaaa6b8b723771135b ')
                ($ Id.VSub_DollarName '$commit_sha5')
                ('\n')
                ('e2bfd06a37dd2031684a59a6e2b033e212239c78 ')
                ($ Id.VSub_DollarName '$commit_sha4')
                ('\n')
                ('5772f42408c0dd6f097a7ca2d24de0e78d1c46b1 ')
                ($ Id.VSub_DollarName '$commit_sha3')
                ('\n')
                ('283b48219aee9a4105f6cab337e789065c82c2b9 ')
                ($ Id.VSub_DollarName '$commit_sha2')
                ('\n')
              ]
            )
          ]
        )
        (command.Simple
          words: [{(sort)}]
          redirects: [
            (redir.Redir
              op: (Token id:Id.Redir_Great val:'>' span_id:1458)
              fd: -1
              arg_word: {(expect_notes_union2)}
            )
          ]
        )
      ]
      negated: F
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:1499)
          fd: -1
          arg_word: {(expect_log_union2)}
        )
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:1502)
          fd: -1
          here_begin: {(EOF)}
          here_end_span_id: 1566
          stdin_parts: [
            ($ Id.VSub_DollarName '$commit_sha15')
            (' 15th\n')
            ('z notes on 15th commit\n')
            ('\n')
            ('y notes on 15th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha14')
            (' 14th\n')
            ('y notes on 14th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha13')
            (' 13th\n')
            ('y notes on 13th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha12')
            (' 12th\n')
            ('y notes on 12th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha11')
            (' 11th\n')
            ('z notes on 11th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha10')
            (' 10th\n')
            ('x notes on 10th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha9')
            (' 9th\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha8')
            (' 8th\n')
            ('z notes on 8th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha7')
            (' 7th\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha6')
            (' 6th\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha5')
            (' 5th\n')
            ('z notes on 5th commit\n')
            ('\n')
            ('y notes on 5th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha4')
            (' 4th\n')
            ('y notes on 4th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha3')
            (' 3rd\n')
            ('y notes on 3rd commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha2')
            (' 2nd\n')
            ('z notes on 2nd commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha1')
            (' 1st\n')
            ('\n')
          ]
        )
      ]
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'merge y into z with "union" strategy => Non-conflicting 3-way merge'
            span_id: 1571
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1575) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config core.notesRef refs/notes/z &&\n'
            span_id: 1576
          ) (Token id:Id.Lit_Chars val:'\tgit notes merge --strategy=union y &&\n' span_id:1577) 
          (Token id:Id.Lit_Chars val:'\tverify_notes z union2\n' span_id:1578)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'reset to pre-merge state (z)' span_id:1585))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1589) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit update-ref refs/notes/z refs/notes/z^1 &&\n'
            span_id: 1590
          ) (Token id:Id.Lit_Chars val:'\t# Verify pre-merge state\n' span_id:1591) 
          (Token id:Id.Lit_Chars val:'\tverify_notes z z\n' span_id:1592)
        )
      }
    )
    (command.Pipeline
      children: [
        (command.Simple
          words: [{(cat)}]
          redirects: [
            (redir.HereDoc
              op: (Token id:Id.Redir_DLess val:'<<' span_id:1598)
              fd: -1
              here_begin: {(EOF)}
              here_end_span_id: 1642
              stdin_parts: [
                ('6be90240b5f54594203e25d9f2f64b7567175aee ')
                ($ Id.VSub_DollarName '$commit_sha15')
                ('\n')
                ('5de7ea7ad4f47e7ff91989fb82234634730f75df ')
                ($ Id.VSub_DollarName '$commit_sha14')
                ('\n')
                ('3a631fdb6f41b05b55d8f4baf20728ba8f6fccbc ')
                ($ Id.VSub_DollarName '$commit_sha13')
                ('\n')
                ('a66055fa82f7a03fe0c02a6aba3287a85abf7c62 ')
                ($ Id.VSub_DollarName '$commit_sha12')
                ('\n')
                ('7e3c53503a3db8dd996cb62e37c66e070b44b54d ')
                ($ Id.VSub_DollarName '$commit_sha11')
                ('\n')
                ('b8d03e173f67f6505a76f6e00cf93440200dd9be ')
                ($ Id.VSub_DollarName '$commit_sha10')
                ('\n')
                ('851e1638784a884c7dd26c5d41f3340f6387413a ')
                ($ Id.VSub_DollarName '$commit_sha8')
                ('\n')
                ('660311d7f78dc53db12ac373a43fca7465381a7e ')
                ($ Id.VSub_DollarName '$commit_sha5')
                ('\n')
                ('e2bfd06a37dd2031684a59a6e2b033e212239c78 ')
                ($ Id.VSub_DollarName '$commit_sha4')
                ('\n')
                ('5772f42408c0dd6f097a7ca2d24de0e78d1c46b1 ')
                ($ Id.VSub_DollarName '$commit_sha3')
                ('\n')
                ('283b48219aee9a4105f6cab337e789065c82c2b9 ')
                ($ Id.VSub_DollarName '$commit_sha2')
                ('\n')
              ]
            )
          ]
        )
        (command.Simple
          words: [{(sort)}]
          redirects: [
            (redir.Redir
              op: (Token id:Id.Redir_Great val:'>' span_id:1605)
              fd: -1
              arg_word: {(expect_notes_cat_sort_uniq)}
            )
          ]
        )
      ]
      negated: F
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:1646)
          fd: -1
          arg_word: {(expect_log_cat_sort_uniq)}
        )
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:1649)
          fd: -1
          here_begin: {(EOF)}
          here_end_span_id: 1711
          stdin_parts: [
            ($ Id.VSub_DollarName '$commit_sha15')
            (' 15th\n')
            ('y notes on 15th commit\n')
            ('z notes on 15th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha14')
            (' 14th\n')
            ('y notes on 14th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha13')
            (' 13th\n')
            ('y notes on 13th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha12')
            (' 12th\n')
            ('y notes on 12th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha11')
            (' 11th\n')
            ('z notes on 11th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha10')
            (' 10th\n')
            ('x notes on 10th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha9')
            (' 9th\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha8')
            (' 8th\n')
            ('z notes on 8th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha7')
            (' 7th\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha6')
            (' 6th\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha5')
            (' 5th\n')
            ('y notes on 5th commit\n')
            ('z notes on 5th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha4')
            (' 4th\n')
            ('y notes on 4th commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha3')
            (' 3rd\n')
            ('y notes on 3rd commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha2')
            (' 2nd\n')
            ('z notes on 2nd commit\n')
            ('\n')
            ($ Id.VSub_DollarName '$commit_sha1')
            (' 1st\n')
            ('\n')
          ]
        )
      ]
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'merge y into z with "cat_sort_uniq" strategy => Non-conflicting 3-way merge'
            span_id: 1716
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1720) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit notes merge --strategy=cat_sort_uniq y &&\n'
            span_id: 1721
          ) (Token id:Id.Lit_Chars val:'\tverify_notes z cat_sort_uniq\n' span_id:1722)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'reset to pre-merge state (z)' span_id:1729))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1733) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit update-ref refs/notes/z refs/notes/z^1 &&\n'
            span_id: 1734
          ) (Token id:Id.Lit_Chars val:'\t# Verify pre-merge state\n' span_id:1735) 
          (Token id:Id.Lit_Chars val:'\tverify_notes z z\n' span_id:1736)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 
'merge y into z with "cat_sort_uniq" strategy configuration option => Non-conflicting 3-way merge'
            span_id: 1743
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1747) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit -c notes.mergeStrategy="cat_sort_uniq" notes merge y &&\n'
            span_id: 1748
          ) (Token id:Id.Lit_Chars val:'\tverify_notes z cat_sort_uniq\n' span_id:1749)
        )
      }
    )
    (C {(test_done)})
  ]
)