(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 git worktree add' span_id:6))}
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(.)} {(DQ ($ Id.VSub_DollarName '$TEST_DIRECTORY')) (/lib-rebase.sh)})
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:26))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:30) 
          (Token id:Id.Lit_Chars val:'\ttest_commit init\n' span_id:31)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'"add" an existing worktree' span_id:38))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:42) 
          (Token id:Id.Lit_Chars val:'\tmkdir -p existing/subtree &&\n' span_id:43) (Token id:Id.Lit_Chars val:'\ttest_must_fail git worktree add --detach existing master\n' span_id:44)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'"add" an existing empty worktree' span_id:51))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:55) 
          (Token id:Id.Lit_Chars val:'\tmkdir existing_empty &&\n' span_id:56) (Token id:Id.Lit_Chars val:'\tgit worktree add --detach existing_empty master\n' span_id:57)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: '"add" using shorthand - fails when no previous branch'
            span_id: 64
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:68) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git worktree add existing_short -\n'
            span_id: 69
          )
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'"add" using - shorthand' span_id:76))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:80) 
          (Token id:Id.Lit_Chars val:'\tgit checkout -b newbranch &&\n' span_id:81) (Token id:Id.Lit_Chars val:'\techo hello >myworld &&\n' span_id:82) 
          (Token id:Id.Lit_Chars val:'\tgit add myworld &&\n' span_id:83) (Token id:Id.Lit_Chars val:'\tgit commit -m myworld &&\n' span_id:84) 
          (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:85) (Token id:Id.Lit_Chars val:'\tgit worktree add short-hand - &&\n' span_id:86) 
          (Token id:Id.Lit_Chars val:'\techo refs/heads/newbranch >expect &&\n' span_id:87) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit -C short-hand rev-parse --symbolic-full-name HEAD >actual &&\n'
            span_id: 88
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:89)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'"add" refuses to checkout locked branch' span_id:96))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:100) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git worktree add zere master &&\n'
            span_id: 101
          ) (Token id:Id.Lit_Chars val:'\t! test -d zere &&\n' span_id:102) 
          (Token id:Id.Lit_Chars val:'\t! test -d .git/worktrees/zere\n' span_id:103)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'checking out paths not complaining about linked checkouts'
            span_id: 110
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:114) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:115) (Token id:Id.Lit_Chars val:'\tcd existing_empty &&\n' span_id:116) 
          (Token id:Id.Lit_Chars val:'\techo dirty >>init.t &&\n' span_id:117) (Token id:Id.Lit_Chars val:'\tgit checkout master -- init.t\n' span_id:118) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:119)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'"add" worktree' span_id:126))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:130) 
          (Token id:Id.Lit_Chars val:'\tgit rev-parse HEAD >expect &&\n' span_id:131) (Token id:Id.Lit_Chars val:'\tgit worktree add --detach here master &&\n' span_id:132) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:133) (Token id:Id.Lit_Chars val:'\t\tcd here &&\n' span_id:134) 
          (Token id:Id.Lit_Chars val:'\t\ttest_cmp ../init.t init.t &&\n' span_id:135) (Token id:Id.Lit_Chars val:'\t\ttest_must_fail git symbolic-ref HEAD &&\n' span_id:136) 
          (Token id:Id.Lit_Chars val:'\t\tgit rev-parse HEAD >actual &&\n' span_id:137) (Token id:Id.Lit_Chars val:'\t\ttest_cmp ../expect actual &&\n' span_id:138) 
          (Token id:Id.Lit_Chars val:'\t\tgit fsck\n' span_id:139) (Token id:Id.Lit_Chars val:'\t)\n' span_id:140)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'"add" worktree from a subdir' span_id:147))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:151) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:152) (Token id:Id.Lit_Chars val:'\t\tmkdir sub &&\n' span_id:153) 
          (Token id:Id.Lit_Chars val:'\t\tcd sub &&\n' span_id:154) (Token id:Id.Lit_Chars val:'\t\tgit worktree add --detach here master &&\n' span_id:155) 
          (Token id:Id.Lit_Chars val:'\t\tcd here &&\n' span_id:156) (Token id:Id.Lit_Chars val:'\t\ttest_cmp ../../init.t init.t\n' span_id:157) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:158)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'"add" from a linked checkout' span_id:165))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:169) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:170) (Token id:Id.Lit_Chars val:'\t\tcd here &&\n' span_id:171) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit worktree add --detach nested-here master &&\n'
            span_id: 172
          ) (Token id:Id.Lit_Chars val:'\t\tcd nested-here &&\n' span_id:173) 
          (Token id:Id.Lit_Chars val:'\t\tgit fsck\n' span_id:174) (Token id:Id.Lit_Chars val:'\t)\n' span_id:175)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'"add" worktree creating new branch' span_id:182))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:186) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit worktree add -b newmaster there master &&\n'
            span_id: 187
          ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:188) 
          (Token id:Id.Lit_Chars val:'\t\tcd there &&\n' span_id:189) (Token id:Id.Lit_Chars val:'\t\ttest_cmp ../init.t init.t &&\n' span_id:190) 
          (Token id:Id.Lit_Chars val:'\t\tgit symbolic-ref HEAD >actual &&\n' span_id:191) (Token id:Id.Lit_Chars val:'\t\techo refs/heads/newmaster >expect &&\n' span_id:192) 
          (Token id:Id.Lit_Chars val:'\t\ttest_cmp expect actual &&\n' span_id:193) (Token id:Id.Lit_Chars val:'\t\tgit fsck\n' span_id:194) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:195)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'die the same branch is already checked out' span_id:202))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:206) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:207) (Token id:Id.Lit_Chars val:'\t\tcd here &&\n' span_id:208) 
          (Token
            id: Id.Lit_Chars
            val: '\t\ttest_must_fail git checkout newmaster\n'
            span_id: 209
          ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:210)
        )
      }
    )
    (C {(test_expect_success)} {(SYMLINKS)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'die the same branch is already checked out (symlink)'
            span_id: 219
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:223) 
          (Token
            id: Id.Lit_Chars
            val: '\thead=$(git -C there rev-parse --git-path HEAD) &&\n'
            span_id: 224
          ) (Token id:Id.Lit_Chars val:'\tref=$(git -C there symbolic-ref HEAD) &&\n' span_id:225) 
          (Token id:Id.Lit_Chars val:'\trm "$head" &&\n' span_id:226) (Token id:Id.Lit_Chars val:'\tln -s "$ref" "$head" &&\n' span_id:227) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git -C here checkout newmaster\n'
            span_id: 228
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'not die the same branch is already checked out' span_id:235))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:239) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:240) (Token id:Id.Lit_Chars val:'\t\tcd here &&\n' span_id:241) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit worktree add --force anothernewmaster newmaster\n'
            span_id: 242
          ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:243)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'not die on re-checking out current branch' span_id:250))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:254) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:255) (Token id:Id.Lit_Chars val:'\t\tcd there &&\n' span_id:256) 
          (Token id:Id.Lit_Chars val:'\t\tgit checkout newmaster\n' span_id:257) (Token id:Id.Lit_Chars val:'\t)\n' span_id:258)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'"add" from a bare repo' span_id:265))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:269) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:270) (Token id:Id.Lit_Chars val:'\t\tgit clone --bare . bare &&\n' span_id:271) 
          (Token id:Id.Lit_Chars val:'\t\tcd bare &&\n' span_id:272) (Token id:Id.Lit_Chars val:'\t\tgit worktree add -b bare-master ../there2 master\n' span_id:273) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:274)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'checkout from a bare repo without "add"' span_id:281))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:285) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:286) (Token id:Id.Lit_Chars val:'\t\tcd bare &&\n' span_id:287) 
          (Token
            id: Id.Lit_Chars
            val: '\t\ttest_must_fail git checkout master\n'
            span_id: 288
          ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:289)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'"add" default branch of a bare repo' span_id:296))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:300) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:301) (Token id:Id.Lit_Chars val:'\t\tgit clone --bare . bare2 &&\n' span_id:302) 
          (Token id:Id.Lit_Chars val:'\t\tcd bare2 &&\n' span_id:303) (Token id:Id.Lit_Chars val:'\t\tgit worktree add ../there3 master\n' span_id:304) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:305)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'checkout with grafts' span_id:312))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:316) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_when_finished rm .git/info/grafts &&\n'
            span_id: 317
          ) (Token id:Id.Lit_Chars val:'\ttest_commit abc &&\n' span_id:318) 
          (Token id:Id.Lit_Chars val:'\tSHA1=$(git rev-parse HEAD) &&\n' span_id:319) (Token id:Id.Lit_Chars val:'\ttest_commit def &&\n' span_id:320) 
          (Token id:Id.Lit_Chars val:'\ttest_commit xyz &&\n' span_id:321) (Token id:Id.Lit_Chars val:'\techo "$(git rev-parse HEAD) $SHA1" >.git/info/grafts &&\n' span_id:322) 
          (Token id:Id.Lit_Chars val:'\tcat >expected <<-\\EOF &&\n' span_id:323) (Token id:Id.Lit_Chars val:'\txyz\n' span_id:324) (Token id:Id.Lit_Chars val:'\tabc\n' span_id:325) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:326) (Token id:Id.Lit_Chars val:'\tgit log --format=%s -2 >actual &&\n' span_id:327) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual &&\n' span_id:328) (Token id:Id.Lit_Chars val:'\tgit worktree add --detach grafted master &&\n' span_id:329) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit --git-dir=grafted/.git log --format=%s -2 >actual &&\n'
            span_id: 330
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:331)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'"add" from relative HEAD' span_id:338))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:342) 
          (Token id:Id.Lit_Chars val:'\ttest_commit a &&\n' span_id:343) (Token id:Id.Lit_Chars val:'\ttest_commit b &&\n' span_id:344) 
          (Token id:Id.Lit_Chars val:'\ttest_commit c &&\n' span_id:345) (Token id:Id.Lit_Chars val:'\tgit rev-parse HEAD~1 >expected &&\n' span_id:346) 
          (Token id:Id.Lit_Chars val:'\tgit worktree add relhead HEAD~1 &&\n' span_id:347) (Token id:Id.Lit_Chars val:'\tgit -C relhead rev-parse HEAD >actual &&\n' span_id:348) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:349)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'"add -b" with <branch> omitted' span_id:356))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:360) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit worktree add -b burble flornk &&\n'
            span_id: 361
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp_rev HEAD burble\n' span_id:362)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'"add --detach" with <branch> omitted' span_id:369))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:373) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit worktree add --detach fishhook &&\n'
            span_id: 374
          ) (Token id:Id.Lit_Chars val:'\tgit rev-parse HEAD >expected &&\n' span_id:375) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit -C fishhook rev-parse HEAD >actual &&\n'
            span_id: 376
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual &&\n' span_id:377) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git -C fishhook symbolic-ref HEAD\n'
            span_id: 378
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'"add" with <branch> omitted' span_id:385))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:389) 
          (Token id:Id.Lit_Chars val:'\tgit worktree add wiffle/bat &&\n' span_id:390) (Token id:Id.Lit_Chars val:'\ttest_cmp_rev HEAD bat\n' span_id:391)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: '"add" auto-vivify does not clobber existing branch'
            span_id: 398
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:402) 
          (Token id:Id.Lit_Chars val:'\ttest_commit c1 &&\n' span_id:403) (Token id:Id.Lit_Chars val:'\ttest_commit c2 &&\n' span_id:404) 
          (Token id:Id.Lit_Chars val:'\tgit branch precious HEAD~1 &&\n' span_id:405) (Token id:Id.Lit_Chars val:'\ttest_must_fail git worktree add precious &&\n' span_id:406) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp_rev HEAD~1 precious &&\n' span_id:407) (Token id:Id.Lit_Chars val:'\ttest_path_is_missing precious\n' span_id:408)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: '"add" no auto-vivify with --detach and <branch> omitted'
            span_id: 415
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:419) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit worktree add --detach mish/mash &&\n'
            span_id: 420
          ) (Token id:Id.Lit_Chars val:'\ttest_must_fail git rev-parse mash -- &&\n' span_id:421) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git -C mish/mash symbolic-ref HEAD\n'
            span_id: 422
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'"add" -b/-B mutually exclusive' span_id:429))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:433) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git worktree add -b poodle -B poodle bamboo master\n'
            span_id: 434
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'"add" -b/--detach mutually exclusive' span_id:441))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:445) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git worktree add -b poodle --detach bamboo master\n'
            span_id: 446
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'"add" -B/--detach mutually exclusive' span_id:453))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:457) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git worktree add -B poodle --detach bamboo master\n'
            span_id: 458
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'"add -B" fails if the branch is checked out' span_id:465))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:469) 
          (Token id:Id.Lit_Chars val:'\tgit rev-parse newmaster >before &&\n' span_id:470) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git worktree add -B newmaster bamboo master &&\n'
            span_id: 471
          ) (Token id:Id.Lit_Chars val:'\tgit rev-parse newmaster >after &&\n' span_id:472) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp before after\n' span_id:473)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'add -B' span_id:480))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:484) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit worktree add -B poodle bamboo2 master^ &&\n'
            span_id: 485
          ) (Token id:Id.Lit_Chars val:'\tgit -C bamboo2 symbolic-ref HEAD >actual &&\n' span_id:486) 
          (Token id:Id.Lit_Chars val:'\techo refs/heads/poodle >expected &&\n' span_id:487) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual &&\n' span_id:488) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp_rev master^ poodle\n' span_id:489)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'local clone from linked checkout' span_id:496))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:500) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit clone --local here here-clone &&\n'
            span_id: 501
          ) (Token id:Id.Lit_Chars val:'\t( cd here-clone && git fsck )\n' span_id:502)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'"add" worktree with --no-checkout' span_id:509))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:513) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit worktree add --no-checkout -b swamp swamp &&\n'
            span_id: 514
          ) (Token id:Id.Lit_Chars val:'\t! test -e swamp/init.t &&\n' span_id:515) 
          (Token id:Id.Lit_Chars val:'\tgit -C swamp reset --hard &&\n' span_id:516) (Token id:Id.Lit_Chars val:'\ttest_cmp init.t swamp/init.t\n' span_id:517)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'"add" worktree with --checkout' span_id:524))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:528) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit worktree add --checkout -b swmap2 swamp2 &&\n'
            span_id: 529
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp init.t swamp2/init.t\n' span_id:530)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'put a worktree under rebase' span_id:537))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:541) 
          (Token id:Id.Lit_Chars val:'\tgit worktree add under-rebase &&\n' span_id:542) (Token id:Id.Lit_Chars val:'\t(\n' span_id:543) 
          (Token id:Id.Lit_Chars val:'\t\tcd under-rebase &&\n' span_id:544) (Token id:Id.Lit_Chars val:'\t\tset_fake_editor &&\n' span_id:545) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tFAKE_LINES="edit 1" git rebase -i HEAD^ &&\n'
            span_id: 546
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit worktree list | grep "under-rebase.*detached HEAD"\n'
            span_id: 547
          ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:548)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'add a worktree, checking out a rebased branch' span_id:555))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:559) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git worktree add new-rebase under-rebase &&\n'
            span_id: 560
          ) (Token id:Id.Lit_Chars val:'\t! test -d new-rebase\n' span_id:561)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'checking out a rebased branch from another worktree'
            span_id: 568
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:572) 
          (Token id:Id.Lit_Chars val:'\tgit worktree add new-place &&\n' span_id:573) (Token id:Id.Lit_Chars val:'\ttest_must_fail git -C new-place checkout under-rebase\n' span_id:574)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'not allow to delete a branch under rebase' span_id:581))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:585) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:586) (Token id:Id.Lit_Chars val:'\t\tcd under-rebase &&\n' span_id:587) 
          (Token
            id: Id.Lit_Chars
            val: '\t\ttest_must_fail git branch -D under-rebase\n'
            span_id: 588
          ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:589)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rename a branch under rebase not allowed' span_id:596))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:600) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git branch -M under-rebase rebase-with-new-name\n'
            span_id: 601
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'check out from current worktree branch ok' span_id:608))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:612) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:613) (Token id:Id.Lit_Chars val:'\t\tcd under-rebase &&\n' span_id:614) 
          (Token id:Id.Lit_Chars val:'\t\tgit checkout under-rebase &&\n' span_id:615) (Token id:Id.Lit_Chars val:'\t\tgit checkout - &&\n' span_id:616) 
          (Token id:Id.Lit_Chars val:'\t\tgit rebase --abort\n' span_id:617) (Token id:Id.Lit_Chars val:'\t)\n' span_id:618)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'checkout a branch under bisect' span_id:625))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:629) 
          (Token id:Id.Lit_Chars val:'\tgit worktree add under-bisect &&\n' span_id:630) (Token id:Id.Lit_Chars val:'\t(\n' span_id:631) 
          (Token id:Id.Lit_Chars val:'\t\tcd under-bisect &&\n' span_id:632) (Token id:Id.Lit_Chars val:'\t\tgit bisect start &&\n' span_id:633) 
          (Token id:Id.Lit_Chars val:'\t\tgit bisect bad &&\n' span_id:634) (Token id:Id.Lit_Chars val:'\t\tgit bisect good HEAD~2 &&\n' span_id:635) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit worktree list | grep "under-bisect.*detached HEAD" &&\n'
            span_id: 636
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t\ttest_must_fail git worktree add new-bisect under-bisect &&\n'
            span_id: 637
          ) (Token id:Id.Lit_Chars val:'\t\t! test -d new-bisect\n' span_id:638) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:639)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rename a branch under bisect not allowed' span_id:646))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:650) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git branch -M under-bisect bisect-with-new-name\n'
            span_id: 651
          )
        )
      }
    )
    (C {(test_done)})
  ]
)