(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'test_description='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'test_description='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test_description='> name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'Test merging of notes trees in multiple worktrees'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {<'./test-lib.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [{<test_expect_success>} {(SQ <'setup commit'>)} {(SQ <'\n'> <'\ttest_commit tantrum\n'>)}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'commit_tantrum='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'commit_tantrum='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'commit_tantrum='> name:commit_tantrum)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Simple
                    blame_tok: <git>
                    more_env: []
                    words: [
                      {<git>}
                      {<rev-parse>}
                      {<tantrum> <Id.Lit_Other '^'> <Id.Lit_LBrace '{'> <commit> <Id.Lit_RBrace '}'>}
                    ]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Eof_RParen _>
              )
            }
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'setup notes ref (x)'>)}
        {
          (SQ <'\n'> <'\tgit config core.notesRef refs/notes/x &&\n'> 
            <'\tgit notes add -m "x notes on tantrum" tantrum\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'setup local branch (y)'>)}
        {
          (SQ <'\n'> <'\tgit update-ref refs/notes/y refs/notes/x &&\n'> 
            <'\tgit config core.notesRef refs/notes/y &&\n'> <'\tgit notes remove tantrum\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'setup remote branch (z)'>)}
        {
          (SQ <'\n'> <'\tgit update-ref refs/notes/z refs/notes/x &&\n'> 
            <'\tgit config core.notesRef refs/notes/z &&\n'> <'\tgit notes add -f -m "conflicting notes on tantrum" tantrum\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'modify notes ref ourselves (x)'>)}
        {
          (SQ <'\n'> <'\tgit config core.notesRef refs/notes/x &&\n'> 
            <'\tgit notes add -f -m "more conflicting notes on tantrum" tantrum\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'create some new worktrees'>)}
        {
          (SQ <'\n'> <'\tgit worktree add -b newbranch worktree master &&\n'> 
            <'\tgit worktree add -b newbranch2 worktree2 master\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'merge z into y fails and sets NOTES_MERGE_REF'>)}
        {
          (SQ <'\n'> <'\tgit config core.notesRef refs/notes/y &&\n'> 
            <'\ttest_must_fail git notes merge z &&\n'> <'\techo "ref: refs/notes/y" >expect &&\n'> <'\ttest_cmp .git/NOTES_MERGE_REF expect\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'merge z into y while mid-merge in another workdir fails'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd worktree &&\n'> 
            <'\t\tgit config core.notesRef refs/notes/y &&\n'> <'\t\ttest_must_fail git notes merge z 2>err &&\n'> 
            <'\t\ttest_i18ngrep "a notes merge into refs/notes/y is already in-progress at" err\n'> <'\t) &&\n'> <'\ttest_path_is_missing .git/worktrees/worktree/NOTES_MERGE_REF\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'merge z into x while mid-merge on y succeeds'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd worktree2 &&\n'> 
            <'\t\tgit config core.notesRef refs/notes/x &&\n'> <'\t\ttest_must_fail git notes merge z 2>&1 >out &&\n'> 
            <'\t\ttest_i18ngrep "Automatic notes merge failed" out &&\n'> <'\t\tgrep -v "A notes merge into refs/notes/x is already in-progress in" out\n'> <'\t) &&\n'> 
            <'\techo "ref: refs/notes/x" >expect &&\n'> <'\ttest_cmp .git/worktrees/worktree2/NOTES_MERGE_REF expect\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_done>
      more_env: []
      words: [{<test_done>}]
      redirects: []
      do_fork: T
    )
  ]
)