(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <"Combination of submodules and multiple workdirs">)}
          spids: [4]
        )
      ]
      spids: [4]
    )
    (C {(.)} {(./test-lib.sh)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:base_path)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(pwd)} {(-P)})])
                left_token: <Left_CommandSub "$(">
                spids: [16 20]
              )
            }
          spids: [15]
        )
      ]
      spids: [15]
    )
    (C {(test_expect_success)} {(SQ <"setup: make origin">)} 
      {
        (SQ <"mkdir -p origin/sub && ( cd origin/sub && git init &&\n"> <"\techo file1 >file1 &&\n"> 
          <"\tgit add file1 &&\n"> <"\tgit commit -m file1 ) &&\n"> <"    mkdir -p origin/main && ( cd origin/main && git init &&\n"> 
          <"\tgit submodule add ../sub &&\n"> <"\tgit commit -m \"add sub\" ) &&\n"> <"    ( cd origin/sub &&\n"> <"\techo file1updated >file1 &&\n"> 
          <"\tgit add file1 &&\n"> <"\tgit commit -m \"file1 updated\" ) &&\n"> <"    ( cd origin/main/sub && git pull ) &&\n"> 
          <"    ( cd origin/main &&\n"> <"\tgit add sub &&\n"> <"\tgit commit -m \"sub updated\" )">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"setup: clone">)} 
      {
        (SQ <"mkdir clone && ( cd clone &&\n"> <"\tgit clone --recursive \"$base_path/origin/main\")">)
      }
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:rev1_hash_main)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (C {(git)} {(--git-dir) (Lit_Other "=") (origin/main/.git)} {(show)} 
                        {(--pretty) (Lit_Other "=") (format) (Lit_Other ":") (Lit_Other "%") (h)} {(-q)} {(DQ ("HEAD~1"))}
                      )
                    ]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [65 86]
              )
            }
          spids: [64]
        )
      ]
      spids: [64]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:rev1_hash_sub)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (C {(git)} {(--git-dir) (Lit_Other "=") (origin/sub/.git)} {(show)} 
                        {(--pretty) (Lit_Other "=") (format) (Lit_Other ":") (Lit_Other "%") (h)} {(-q)} {(DQ ("HEAD~1"))}
                      )
                    ]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [89 110]
              )
            }
          spids: [88]
        )
      ]
      spids: [88]
    )
    (C {(test_expect_success)} {(SQ <"checkout main">)} 
      {
        (SQ <"mkdir default_checkout &&\n"> <"    (cd clone/main &&\n"> 
          <"\tgit worktree add \"$base_path/default_checkout/main\" \"$rev1_hash_main\")">
        )
      }
    )
    (C {(test_expect_failure)} {(SQ <"can see submodule diffs just after checkout">)} 
      {
        (SQ 
          <
"(cd default_checkout/main && git diff --submodule master\"^!\" | grep \"file1 updated\")"
          >
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"checkout main and initialize independed clones">)} 
      {
        (SQ <"mkdir fully_cloned_submodule &&\n"> <"    (cd clone/main &&\n"> 
          <
"\tgit worktree add \"$base_path/fully_cloned_submodule/main\" \"$rev1_hash_main\") &&\n"
          > <"    (cd fully_cloned_submodule/main && git submodule update)">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"can see submodule diffs after independed cloning">)} 
      {
        (SQ 
          <
"(cd fully_cloned_submodule/main && git diff --submodule master\"^!\" | grep \"file1 updated\")"
          >
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"checkout sub manually">)} 
      {
        (SQ <"mkdir linked_submodule &&\n"> <"    (cd clone/main &&\n"> 
          <"\tgit worktree add \"$base_path/linked_submodule/main\" \"$rev1_hash_main\") &&\n"> <"    (cd clone/main/sub &&\n"> 
          <"\tgit worktree add \"$base_path/linked_submodule/main/sub\" \"$rev1_hash_sub\")">
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ <"can see submodule diffs after manual checkout of linked submodule">)} {(SQ <"(cd linked_submodule/main && git diff --submodule master\"^!\" | grep \"file1 updated\")">)}
    )
    (C {(test_done)})
  ]
)