(CommandList
  children: [
    (FuncDef
      name: create_lib_submodule_repo
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(git)} {(init)} {(submodule_update_repo)})
                (Subshell
                  child: 
                    (AndOr
                      ops: [
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                        Op_DAmp
                      ]
                      children: [
                        (C {(cd)} {(submodule_update_repo)})
                        (SimpleCommand
                          words: [{(echo)} {(DQ (expect))}]
                          redirects: [
                            (Redir
                              op: <Redir_DGreat '>>'>
                              fd: 16777215
                              arg_word: {(.gitignore)}
                            )
                          ]
                        )
                        (SimpleCommand
                          words: [{(echo)} {(DQ (actual))}]
                          redirects: [
                            (Redir
                              op: <Redir_DGreat '>>'>
                              fd: 16777215
                              arg_word: {(.gitignore)}
                            )
                          ]
                        )
                        (SimpleCommand
                          words: [{(echo)} {(DQ (x))}]
                          redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(file1)})]
                        )
                        (SimpleCommand
                          words: [{(echo)} {(DQ (y))}]
                          redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(file2)})]
                        )
                        (C {(git)} {(add)} {(.gitignore)} {(file1)} {(file2)})
                        (C {(git)} {(commit)} {(-m)} {(DQ (Base))})
                        (C {(git)} {(branch)} {(DQ (no_submodule))})
                        (C {(git)} {(checkout)} {(-b)} {(DQ (add_sub1))})
                        (C {(git)} {(submodule)} {(add)} {(./.)} {(sub1)})
                        (C {(git)} {(config)} {(-f)} {(.gitmodules)} {(submodule.sub1.ignore)} {(all)})
                        (C {(git)} {(config)} {(submodule.sub1.ignore)} {(all)})
                        (C {(git)} {(add)} {(.gitmodules)})
                        (C {(git)} {(commit)} {(-m)} {(DQ ('Add sub1'))})
                        (C {(git)} {(checkout)} {(-b)} {(remove_sub1)})
                        (C {(git)} {(revert)} {(HEAD)})
                        (C {(git)} {(checkout)} {(-b)} {(DQ (modify_sub1))} {(DQ (add_sub1))})
                        (C {(git)} {(submodule)} {(update)})
                        (Subshell
                          child: 
                            (AndOr
                              ops: [Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp]
                              children: [
                                (C {(cd)} {(sub1)})
                                (C {(git)} {(fetch)})
                                (C {(git)} {(checkout)} {(-b)} {(DQ (modifications))})
                                (SimpleCommand
                                  words: [{(echo)} {(DQ (z))}]
                                  redirects: [
                                    (Redir
                                      op: <Redir_Great '>'>
                                      fd: 16777215
                                      arg_word: {(file2)}
                                    )
                                  ]
                                )
                                (SimpleCommand
                                  words: [{(echo)} {(DQ (x))}]
                                  redirects: [
                                    (Redir
                                      op: <Redir_Great '>'>
                                      fd: 16777215
                                      arg_word: {(file3)}
                                    )
                                  ]
                                )
                                (C {(git)} {(add)} {(file2)} {(file3)})
                                (C {(git)} {(commit)} {(-m)} {(DQ ('modified file2 and added file3'))})
                                (C {(git)} {(push)} {(origin)} {(modifications)})
                              ]
                            )
                          spids: [333 420]
                        )
                        (C {(git)} {(add)} {(sub1)})
                        (C {(git)} {(commit)} {(-m)} {(DQ ('Modify sub1'))})
                        (C {(git)} {(checkout)} {(-b)} {(DQ (replace_sub1_with_directory))} 
                          {(DQ (add_sub1))}
                        )
                        (C {(git)} {(submodule)} {(update)})
                        (Subshell
                          child: 
                            (AndOr
                              ops: [Op_DAmp]
                              children: [(C {(cd)} {(sub1)}) (C {(git)} {(checkout)} {(modifications)})]
                            )
                          spids: [474 491]
                        )
                        (C {(git)} {(rm)} {(--cached)} {(sub1)})
                        (C {(rm)} {(sub1/.git) (Lit_Other '*')})
                        (C {(git)} {(config)} {(-f)} {(.gitmodules)} {(--remove-section)} 
                          {(DQ (submodule.sub1))}
                        )
                        (C {(git)} {(add)} {(.gitmodules)} {(sub1/) (Lit_Other '*')})
                        (C {(git)} {(commit)} {(-m)} {(DQ ('Replace sub1 with directory'))})
                        (C {(git)} {(checkout)} {(-b)} {(replace_directory_with_sub1)})
                        (C {(git)} {(revert)} {(HEAD)})
                        (C {(git)} {(checkout)} {(-b)} {(DQ (replace_sub1_with_file))} {(DQ (add_sub1))})
                        (C {(git)} {(rm)} {(sub1)})
                        (SimpleCommand
                          words: [{(echo)} {(DQ (content))}]
                          redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(sub1)})]
                        )
                        (C {(git)} {(add)} {(sub1)})
                        (C {(git)} {(commit)} {(-m)} {(DQ ('Replace sub1 with file'))})
                        (C {(git)} {(checkout)} {(-b)} {(replace_file_with_sub1)})
                        (C {(git)} {(revert)} {(HEAD)})
                        (C {(git)} {(checkout)} {(-b)} {(DQ (invalid_sub1))} {(DQ (add_sub1))})
                        (C {(git)} {(update-index)} {(--cacheinfo)} {(160000)} 
                          {(0123456789012345678901234567890123456789)} {(sub1)}
                        )
                        (C {(git)} {(commit)} {(-m)} {(DQ ('Invalid sub1 commit'))})
                        (C {(git)} {(checkout)} {(-b)} {(valid_sub1)})
                        (C {(git)} {(revert)} {(HEAD)})
                        (C {(git)} {(checkout)} {(master)})
                      ]
                    )
                  spids: [116 731]
                )
              ]
            )
          ]
          spids: [104]
        )
      spids: [99 103]
    )
    (FuncDef
      name: replace_gitfile_with_git_dir
      body: 
        (BraceGroup
          children: [
            (Subshell
              child: 
                (AndOr
                  ops: [Op_DAmp Op_DAmp Op_DAmp Op_DAmp]
                  children: [
                    (C {(cd)} {(DQ ($ VSub_Number '$1'))})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:git_dir spids:[759])
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [(C {(git)} {(rev-parse)} {(--git-dir)})]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [761 767]
                                )
                              )
                            }
                          spids: [759]
                        )
                      ]
                      spids: [759]
                    )
                    (C {(rm)} {(-f)} {(.git)})
                    (C {(cp)} {(-R)} {(DQ ($ VSub_Name '$git_dir'))} {(.git)})
                    (SimpleCommand
                      words: [{(git)} {(config)} {(--unset)} {(core.worktree)}]
                      more_env: [(env_pair name:GIT_WORK_TREE val:{(.)} spids:[795])]
                    )
                  ]
                )
              spids: [747 807]
            )
          ]
          spids: [744]
        )
      spids: [739 743]
    )
    (FuncDef
      name: test_git_directory_is_unchanged
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp Op_DAmp]
              children: [
                (Subshell
                  child: 
                    (AndOr
                      ops: [Op_DAmp Op_DAmp]
                      children: [
                        (C {(cd)} {(DQ (.git/modules/) ($ VSub_Number '$1'))})
                        (C {(test)} 
                          {
                            (DQ 
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(git)} {(config)} {(core.worktree)})]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [861 867]
                              )
                            )
                          } {(Lit_Other '=')} {(DQ (../../../) ($ VSub_Number '$1'))}
                        )
                        (C {(git)} {(config)} {(--unset)} {(core.worktree)})
                      ]
                    )
                  spids: [841 897]
                )
                (C {(diff)} {(-r)} {(DQ (.git/modules/) ($ VSub_Number '$1'))} 
                  {(DQ ($ VSub_Number '$1') (/.git))}
                )
                (Subshell
                  child: 
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(cd)} {(DQ (.git/modules/) ($ VSub_Number '$1'))})
                        (C {(git)} {(config)} {(core.worktree)} {(DQ (../../../) ($ VSub_Number '$1'))})
                      ]
                    )
                  spids: [919 948]
                )
              ]
            )
          ]
          spids: [838]
        )
      spids: [833 837]
    )
    (FuncDef
      name: prolog
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp Op_DAmp]
              children: [
                (Subshell
                  child: 
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(test)} {(-d)} {(submodule_update_repo)})
                        (C {(create_lib_submodule_repo)})
                      ]
                    )
                  spids: [970 980]
                )
                (C {(test_config_global)} {(diff.ignoreSubmodules)} {(all)})
                (C {(test_config)} {(diff.ignoreSubmodules)} {(all)})
              ]
            )
          ]
          spids: [967]
        )
      spids: [962 966]
    )
    (FuncDef
      name: reset_work_tree_to
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp Op_DAmp]
              children: [
                (C {(rm)} {(-rf)} {(submodule_update)})
                (C {(git)} {(clone)} {(submodule_update_repo)} {(submodule_update)})
                (Subshell
                  child: 
                    (AndOr
                      ops: [Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp]
                      children: [
                        (C {(cd)} {(submodule_update)})
                        (C {(rm)} {(-rf)} {(sub1)})
                        (C {(git)} {(checkout)} {(-f)} {(DQ ($ VSub_Number '$1'))})
                        (SimpleCommand
                          words: [{(git)} {(status)} {(-u)} {(-s)}]
                          redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(actual)})]
                        )
                        (C {(test_must_be_empty)} {(actual)})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:sha1 spids:[1093])
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (C {(git)} {(rev-parse)} {(--revs-only)} 
                                            {(HEAD) (Lit_Other ':') (sub1)}
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [1094 1104]
                                  )
                                }
                              spids: [1093]
                            )
                          ]
                          spids: [1093]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (AndOr
                                  ops: [Op_DAmp]
                                  children: [
                                    (C {(test)} {(-n)} {(DQ ($ VSub_Name '$sha1'))})
                                    (C {(test)} 
                                      {
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (AndOr
                                                  ops: [Op_DAmp]
                                                  children: [
                                                    (C {(cd)} {(DQ (sub1))})
                                                    (C {(git)} {(rev-parse)} {(--verify)} 
                                                      {(DQ ($ VSub_Name '$sha1') ('^{commit}'))}
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [1124 1143]
                                        )
                                      }
                                    )
                                  ]
                                )
                              ]
                              action: [
                                (C {(git)} {(submodule)} {(update)} {(--init)} {(--recursive)} {(DQ (sub1))})
                              ]
                              spids: [16777215 1146]
                            )
                          ]
                          spids: [16777215 1164]
                        )
                      ]
                    )
                  spids: [1040 1167]
                )
              ]
            )
          ]
          spids: [1017]
        )
      spids: [1012 1016]
    )
    (FuncDef
      name: test_superproject_content
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp Op_DAmp Op_DAmp]
              children: [
                (SimpleCommand
                  words: [{(git)} {(diff-index)} {(--cached)} {(DQ ($ VSub_Number '$1'))}]
                  redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(actual)})]
                )
                (C {(test_must_be_empty)} {(actual)})
                (SimpleCommand
                  words: [{(git)} {(diff-files)} {(--ignore-submodules)}]
                  redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(actual)})]
                )
                (C {(test_must_be_empty)} {(actual)})
              ]
            )
          ]
          spids: [1186]
        )
      spids: [1181 1185]
    )
    (FuncDef
      name: test_submodule_content
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp]
              children: [
                (If
                  arms: [
                    (if_arm
                      cond: [(C {(test)} {($ VSub_Pound '$#')} {(KW_Bang '!') (Lit_Other '=')} {(2)})]
                      action: [
                        (C {(echo)} {(DQ ('test_submodule_content needs two arguments'))})
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(1)}
                        )
                      ]
                      spids: [16777215 1257]
                    )
                  ]
                  spids: [16777215 1272]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:submodule spids:[1277])
                      op: Equal
                      rhs: {(DQ ($ VSub_Number '$1'))}
                      spids: [1277]
                    )
                  ]
                  spids: [1277]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:commit spids:[1285])
                      op: Equal
                      rhs: {(DQ ($ VSub_Number '$2'))}
                      spids: [1285]
                    )
                  ]
                  spids: [1285]
                )
                (C {(test)} {(-d)} {(DQ ($ VSub_Name '$submodule')) (/)})
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (AndOr
                          ops: [Op_DAmp]
                          children: [
                            (Pipeline
                              children: [(C {(test)} {(-f)} {(DQ ($ VSub_Name '$submodule')) (/.git)})]
                              negated: T
                            )
                            (Pipeline
                              children: [(C {(test)} {(-d)} {(DQ ($ VSub_Name '$submodule')) (/.git)})]
                              negated: T
                            )
                          ]
                        )
                      ]
                      action: [
                        (C {(echo)} 
                          {(DQ ('Submodule ') ($ VSub_Name '$submodule') (' is not populated'))}
                        )
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(1)}
                        )
                      ]
                      spids: [16777215 1332]
                    )
                  ]
                  spids: [16777215 1349]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:sha1 spids:[1354])
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (C {(git)} {(rev-parse)} {(--verify)} 
                                    {(DQ ($ VSub_Name '$commit') (':') ($ VSub_Name '$submodule'))}
                                  )
                                ]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [1355 1367]
                          )
                        }
                      spids: [1354]
                    )
                  ]
                  spids: [1354]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [(C {(test)} {(-z)} {(DQ ($ VSub_Name '$sha1'))})]
                      action: [
                        (C {(echo)} 
                          {
                            (DQ ("Couldn't retrieve SHA-1 of ") ($ VSub_Name '$submodule') (' for ') 
                              ($ VSub_Name '$commit')
                            )
                          }
                        )
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(1)}
                        )
                      ]
                      spids: [16777215 1383]
                    )
                  ]
                  spids: [16777215 1401]
                )
                (Subshell
                  child: 
                    (AndOr
                      ops: [Op_DAmp Op_DAmp Op_DAmp Op_DAmp]
                      children: [
                        (C {(cd)} {(DQ ($ VSub_Name '$submodule'))})
                        (SimpleCommand
                          words: [{(git)} {(status)} {(-u)} {(-s)}]
                          redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(actual)})]
                        )
                        (C {(test_must_be_empty)} {(actual)})
                        (SimpleCommand
                          words: [{(git)} {(diff)} {(DQ ($ VSub_Name '$sha1'))}]
                          redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(actual)})]
                        )
                        (C {(test_must_be_empty)} {(actual)})
                      ]
                    )
                  spids: [1406 1458]
                )
              ]
            )
          ]
          spids: [1242]
        )
      spids: [1237 1241]
    )
    (FuncDef
      name: test_submodule_switch
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:command spids:[1526])
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [1526]
                )
              ]
              spids: [1526]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (C {(test)} 
                      {(DQ ($ VSub_Name '$KNOWN_FAILURE_STASH_DOES_IGNORE_SUBMODULE_CHANGES'))} {(Lit_Other '=')} {(1)}
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:RESULT spids:[1560])
                          op: Equal
                          rhs: {(DQ (failure))}
                          spids: [1560]
                        )
                      ]
                      spids: [1560]
                    )
                  ]
                  spids: [16777215 1553]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:RESULT spids:[1569])
                      op: Equal
                      rhs: {(DQ (success))}
                      spids: [1569]
                    )
                  ]
                  spids: [1569]
                )
              ]
              spids: [1566 1575]
            )
            (C {(test_expect_) ($ VSub_Name '$RESULT')} 
              {(DQ ($ VSub_Name '$command') (': added submodule creates empty directory'))} 
              {
                (SQ <'\n'> <'\t\tprolog &&\n'> <'\t\treset_work_tree_to no_submodule &&\n'> <'\t\t(\n'> 
                  <'\t\t\tcd submodule_update &&\n'> <'\t\t\tgit branch -t add_sub1 origin/add_sub1 &&\n'> <'\t\t\t$command add_sub1 &&\n'> 
                  <'\t\t\ttest_superproject_content origin/add_sub1 &&\n'> <'\t\t\ttest_dir_is_empty sub1 &&\n'> <'\t\t\tgit submodule update --init --recursive &&\n'> 
                  <'\t\t\ttest_submodule_content sub1 origin/add_sub1\n'> <'\t\t)\n'> <'\t'>
                )
              }
            )
            (C {(test_expect_) ($ VSub_Name '$RESULT')} 
              {
                (DQ ($ VSub_Name '$command') 
                  (': added submodule leaves existing empty directory alone')
                )
              } 
              {
                (SQ <'\n'> <'\t\tprolog &&\n'> <'\t\treset_work_tree_to no_submodule &&\n'> <'\t\t(\n'> 
                  <'\t\t\tcd submodule_update &&\n'> <'\t\t\tmkdir sub1 &&\n'> <'\t\t\tgit branch -t add_sub1 origin/add_sub1 &&\n'> 
                  <'\t\t\t$command add_sub1 &&\n'> <'\t\t\ttest_superproject_content origin/add_sub1 &&\n'> <'\t\t\ttest_dir_is_empty sub1 &&\n'> 
                  <'\t\t\tgit submodule update --init --recursive &&\n'> <'\t\t\ttest_submodule_content sub1 origin/add_sub1\n'> <'\t\t)\n'> <'\t'>
                )
              }
            )
            (C {(test_expect_success)} 
              {
                (DQ ($ VSub_Name '$command') 
                  (": added submodule doesn't remove untracked unignored file with same name")
                )
              } 
              {
                (SQ <'\n'> <'\t\tprolog &&\n'> <'\t\treset_work_tree_to no_submodule &&\n'> <'\t\t(\n'> 
                  <'\t\t\tcd submodule_update &&\n'> <'\t\t\tgit branch -t add_sub1 origin/add_sub1 &&\n'> <'\t\t\t>sub1 &&\n'> 
                  <'\t\t\ttest_must_fail $command add_sub1 &&\n'> <'\t\t\ttest_superproject_content origin/no_submodule &&\n'> <'\t\t\ttest_must_be_empty sub1\n'> 
                  <'\t\t)\n'> <'\t'>
                )
              }
            )
            (C {(test_expect_) ($ VSub_Name '$RESULT')} 
              {
                (DQ ($ VSub_Name '$command') 
                  (': replace tracked file with submodule creates empty directory')
                )
              } 
              {
                (SQ <'\n'> <'\t\tprolog &&\n'> <'\t\treset_work_tree_to replace_sub1_with_file &&\n'> 
                  <'\t\t(\n'> <'\t\t\tcd submodule_update &&\n'> 
                  <'\t\t\tgit branch -t replace_file_with_sub1 origin/replace_file_with_sub1 &&\n'> <'\t\t\t$command replace_file_with_sub1 &&\n'> 
                  <'\t\t\ttest_superproject_content origin/replace_file_with_sub1 &&\n'> <'\t\t\ttest_dir_is_empty sub1 &&\n'> <'\t\t\tgit submodule update --init --recursive &&\n'> 
                  <'\t\t\ttest_submodule_content sub1 origin/replace_file_with_sub1\n'> <'\t\t)\n'> <'\t'>
                )
              }
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (C {(test)} 
                      {
                        (DQ 
                          ($ VSub_Name '$KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR')
                        )
                      } {(Lit_Other '=')} {(1)}
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:RESULT spids:[1729])
                          op: Equal
                          rhs: {(DQ (failure))}
                          spids: [1729]
                        )
                      ]
                      spids: [1729]
                    )
                  ]
                  spids: [16777215 1714]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:RESULT spids:[1738])
                      op: Equal
                      rhs: {(DQ (success))}
                      spids: [1738]
                    )
                  ]
                  spids: [1738]
                )
              ]
              spids: [1735 1744]
            )
            (C {(test_expect_) ($ VSub_Name '$RESULT')} 
              {(DQ ($ VSub_Name '$command') (': replace directory with submodule'))} 
              {
                (SQ <'\n'> <'\t\tprolog &&\n'> 
                  <'\t\treset_work_tree_to replace_sub1_with_directory &&\n'> <'\t\t(\n'> <'\t\t\tcd submodule_update &&\n'> 
                  <
'\t\t\tgit branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 &&\n'
                  > <'\t\t\t$command replace_directory_with_sub1 &&\n'> 
                  <'\t\t\ttest_superproject_content origin/replace_directory_with_sub1 &&\n'> <'\t\t\ttest_dir_is_empty sub1 &&\n'> <'\t\t\tgit submodule update --init --recursive &&\n'> 
                  <'\t\t\ttest_submodule_content sub1 origin/replace_directory_with_sub1\n'> <'\t\t)\n'> <'\t'>
                )
              }
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (C {(test)} 
                      {(DQ ($ VSub_Name '$KNOWN_FAILURE_STASH_DOES_IGNORE_SUBMODULE_CHANGES'))} {(Lit_Other '=')} {(1)}
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:RESULT spids:[1797])
                          op: Equal
                          rhs: {(DQ (failure))}
                          spids: [1797]
                        )
                      ]
                      spids: [1797]
                    )
                  ]
                  spids: [16777215 1794]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:RESULT spids:[1806])
                      op: Equal
                      rhs: {(DQ (success))}
                      spids: [1806]
                    )
                  ]
                  spids: [1806]
                )
              ]
              spids: [1803 1812]
            )
            (C {(test_expect_) ($ VSub_Name '$RESULT')} 
              {
                (DQ ($ VSub_Name '$command') 
                  (': removed submodule leaves submodule directory and its contents in place')
                )
              } 
              {
                (SQ <'\n'> <'\t\tprolog &&\n'> <'\t\treset_work_tree_to add_sub1 &&\n'> <'\t\t(\n'> 
                  <'\t\t\tcd submodule_update &&\n'> <'\t\t\tgit branch -t remove_sub1 origin/remove_sub1 &&\n'> <'\t\t\t$command remove_sub1 &&\n'> 
                  <'\t\t\ttest_superproject_content origin/remove_sub1 &&\n'> <'\t\t\ttest_submodule_content sub1 origin/add_sub1\n'> <'\t\t)\n'> <'\t'>
                )
              }
            )
            (C {(test_expect_) ($ VSub_Name '$RESULT')} 
              {
                (DQ ($ VSub_Name '$command') 
                  (': removed submodule leaves submodule containing a .git directory alone')
                )
              } 
              {
                (SQ <'\n'> <'\t\tprolog &&\n'> <'\t\treset_work_tree_to add_sub1 &&\n'> <'\t\t(\n'> 
                  <'\t\t\tcd submodule_update &&\n'> <'\t\t\tgit branch -t remove_sub1 origin/remove_sub1 &&\n'> 
                  <'\t\t\treplace_gitfile_with_git_dir sub1 &&\n'> <'\t\t\t$command remove_sub1 &&\n'> <'\t\t\ttest_superproject_content origin/remove_sub1 &&\n'> 
                  <'\t\t\ttest_git_directory_is_unchanged sub1 &&\n'> <'\t\t\ttest_submodule_content sub1 origin/add_sub1\n'> <'\t\t)\n'> <'\t'>
                )
              }
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (C {(test)} 
                      {
                        (DQ 
                          ($ VSub_Name 
'$KNOWN_FAILURE_NOFF_MERGE_ATTEMPTS_TO_MERGE_REMOVED_SUBMODULE_FILES'
                          )
                        )
                      } {(Lit_Other '=')} {(1)}
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:RESULT spids:[1903])
                          op: Equal
                          rhs: {(DQ (failure))}
                          spids: [1903]
                        )
                      ]
                      spids: [1903]
                    )
                  ]
                  spids: [16777215 1888]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:RESULT spids:[1912])
                      op: Equal
                      rhs: {(DQ (success))}
                      spids: [1912]
                    )
                  ]
                  spids: [1912]
                )
              ]
              spids: [1909 1918]
            )
            (C {(test_expect_) ($ VSub_Name '$RESULT')} 
              {(DQ ($ VSub_Name '$command') (': replace submodule with a directory must fail'))} 
              {
                (SQ <'\n'> <'\t\tprolog &&\n'> <'\t\treset_work_tree_to add_sub1 &&\n'> <'\t\t(\n'> 
                  <'\t\t\tcd submodule_update &&\n'> <'\t\t\tgit branch -t replace_sub1_with_directory origin/replace_sub1_with_directory &&\n'> 
                  <'\t\t\ttest_must_fail $command replace_sub1_with_directory &&\n'> <'\t\t\ttest_superproject_content origin/add_sub1 &&\n'> 
                  <'\t\t\ttest_submodule_content sub1 origin/add_sub1\n'> <'\t\t)\n'> <'\t'>
                )
              }
            )
            (C {(test_expect_) ($ VSub_Name '$RESULT')} 
              {
                (DQ ($ VSub_Name '$command') 
                  (': replace submodule containing a .git directory with a directory must fail')
                )
              } 
              {
                (SQ <'\n'> <'\t\tprolog &&\n'> <'\t\treset_work_tree_to add_sub1 &&\n'> <'\t\t(\n'> 
                  <'\t\t\tcd submodule_update &&\n'> <'\t\t\tgit branch -t replace_sub1_with_directory origin/replace_sub1_with_directory &&\n'> 
                  <'\t\t\treplace_gitfile_with_git_dir sub1 &&\n'> <'\t\t\ttest_must_fail $command replace_sub1_with_directory &&\n'> 
                  <'\t\t\ttest_superproject_content origin/add_sub1 &&\n'> <'\t\t\ttest_git_directory_is_unchanged sub1 &&\n'> 
                  <'\t\t\ttest_submodule_content sub1 origin/add_sub1\n'> <'\t\t)\n'> <'\t'>
                )
              }
            )
            (C {(test_expect_failure)} 
              {(DQ ($ VSub_Name '$command') (': replace submodule with a file must fail'))} 
              {
                (SQ <'\n'> <'\t\tprolog &&\n'> <'\t\treset_work_tree_to add_sub1 &&\n'> <'\t\t(\n'> 
                  <'\t\t\tcd submodule_update &&\n'> <'\t\t\tgit branch -t replace_sub1_with_file origin/replace_sub1_with_file &&\n'> 
                  <'\t\t\ttest_must_fail $command replace_sub1_with_file &&\n'> <'\t\t\ttest_superproject_content origin/add_sub1 &&\n'> 
                  <'\t\t\ttest_submodule_content sub1 origin/add_sub1\n'> <'\t\t)\n'> <'\t'>
                )
              }
            )
            (C {(test_expect_failure)} 
              {
                (DQ ($ VSub_Name '$command') 
                  (': replace submodule containing a .git directory with a file must fail')
                )
              } 
              {
                (SQ <'\n'> <'\t\tprolog &&\n'> <'\t\treset_work_tree_to add_sub1 &&\n'> <'\t\t(\n'> 
                  <'\t\t\tcd submodule_update &&\n'> <'\t\t\tgit branch -t replace_sub1_with_file origin/replace_sub1_with_file &&\n'> 
                  <'\t\t\treplace_gitfile_with_git_dir sub1 &&\n'> <'\t\t\ttest_must_fail $command replace_sub1_with_file &&\n'> 
                  <'\t\t\ttest_superproject_content origin/add_sub1 &&\n'> <'\t\t\ttest_git_directory_is_unchanged sub1 &&\n'> 
                  <'\t\t\ttest_submodule_content sub1 origin/add_sub1\n'> <'\t\t)\n'> <'\t'>
                )
              }
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (C {(test)} {(DQ ($ VSub_Name '$KNOWN_FAILURE_CHERRY_PICK_SEES_EMPTY_COMMIT'))} 
                      {(Lit_Other '=')} {(1)}
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:RESULT spids:[2072])
                          op: Equal
                          rhs: {(DQ (failure))}
                          spids: [2072]
                        )
                      ]
                      spids: [2072]
                    )
                  ]
                  spids: [16777215 2057]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:RESULT spids:[2081])
                      op: Equal
                      rhs: {(DQ (success))}
                      spids: [2081]
                    )
                  ]
                  spids: [2081]
                )
              ]
              spids: [2078 2087]
            )
            (C {(test_expect_) ($ VSub_Name '$RESULT')} 
              {
                (DQ ($ VSub_Name '$command') 
                  (': modified submodule does not update submodule work tree')
                )
              } 
              {
                (SQ <'\n'> <'\t\tprolog &&\n'> <'\t\treset_work_tree_to add_sub1 &&\n'> <'\t\t(\n'> 
                  <'\t\t\tcd submodule_update &&\n'> <'\t\t\tgit branch -t modify_sub1 origin/modify_sub1 &&\n'> <'\t\t\t$command modify_sub1 &&\n'> 
                  <'\t\t\ttest_superproject_content origin/modify_sub1 &&\n'> <'\t\t\ttest_submodule_content sub1 origin/add_sub1 &&\n'> <'\t\t\tgit submodule update &&\n'> 
                  <'\t\t\ttest_submodule_content sub1 origin/modify_sub1\n'> <'\t\t)\n'> <'\t'>
                )
              }
            )
            (C {(test_expect_) ($ VSub_Name '$RESULT')} 
              {
                (DQ ($ VSub_Name '$command') 
                  (': modified submodule does not update submodule work tree to invalid commit')
                )
              } 
              {
                (SQ <'\n'> <'\t\tprolog &&\n'> <'\t\treset_work_tree_to add_sub1 &&\n'> <'\t\t(\n'> 
                  <'\t\t\tcd submodule_update &&\n'> <'\t\t\tgit branch -t invalid_sub1 origin/invalid_sub1 &&\n'> <'\t\t\t$command invalid_sub1 &&\n'> 
                  <'\t\t\ttest_superproject_content origin/invalid_sub1 &&\n'> <'\t\t\ttest_submodule_content sub1 origin/add_sub1 &&\n'> 
                  <'\t\t\ttest_must_fail git submodule update &&\n'> <'\t\t\ttest_submodule_content sub1 origin/add_sub1\n'> <'\t\t)\n'> <'\t'>
                )
              }
            )
            (C {(test_expect_) ($ VSub_Name '$RESULT')} 
              {
                (DQ ($ VSub_Name '$command') 
                  (': modified submodule does not update submodule work tree from invalid commit')
                )
              } 
              {
                (SQ <'\n'> <'\t\tprolog &&\n'> <'\t\treset_work_tree_to invalid_sub1 &&\n'> <'\t\t(\n'> 
                  <'\t\t\tcd submodule_update &&\n'> <'\t\t\tgit branch -t valid_sub1 origin/valid_sub1 &&\n'> <'\t\t\t$command valid_sub1 &&\n'> 
                  <'\t\t\ttest_superproject_content origin/valid_sub1 &&\n'> <'\t\t\ttest_dir_is_empty sub1 &&\n'> <'\t\t\tgit submodule update --init --recursive &&\n'> 
                  <'\t\t\ttest_submodule_content sub1 origin/valid_sub1\n'> <'\t\t)\n'> <'\t'>
                )
              }
            )
          ]
          spids: [1523]
        )
      spids: [1518 1522]
    )
    (FuncDef
      name: test_submodule_forced_switch
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:command spids:[2201])
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [2201]
                )
              ]
              spids: [2201]
            )
            (C {(test_expect_success)} 
              {(DQ ($ VSub_Name '$command') (': added submodule creates empty directory'))} 
              {
                (SQ <'\n'> <'\t\tprolog &&\n'> <'\t\treset_work_tree_to no_submodule &&\n'> <'\t\t(\n'> 
                  <'\t\t\tcd submodule_update &&\n'> <'\t\t\tgit branch -t add_sub1 origin/add_sub1 &&\n'> <'\t\t\t$command add_sub1 &&\n'> 
                  <'\t\t\ttest_superproject_content origin/add_sub1 &&\n'> <'\t\t\ttest_dir_is_empty sub1 &&\n'> <'\t\t\tgit submodule update --init --recursive &&\n'> 
                  <'\t\t\ttest_submodule_content sub1 origin/add_sub1\n'> <'\t\t)\n'> <'\t'>
                )
              }
            )
            (C {(test_expect_success)} 
              {
                (DQ ($ VSub_Name '$command') 
                  (': added submodule leaves existing empty directory alone')
                )
              } 
              {
                (SQ <'\n'> <'\t\tprolog &&\n'> <'\t\treset_work_tree_to no_submodule &&\n'> <'\t\t(\n'> 
                  <'\t\t\tcd submodule_update &&\n'> <'\t\t\tgit branch -t add_sub1 origin/add_sub1 &&\n'> <'\t\t\tmkdir sub1 &&\n'> 
                  <'\t\t\t$command add_sub1 &&\n'> <'\t\t\ttest_superproject_content origin/add_sub1 &&\n'> <'\t\t\ttest_dir_is_empty sub1 &&\n'> 
                  <'\t\t\tgit submodule update --init --recursive &&\n'> <'\t\t\ttest_submodule_content sub1 origin/add_sub1\n'> <'\t\t)\n'> <'\t'>
                )
              }
            )
            (C {(test_expect_success)} 
              {
                (DQ ($ VSub_Name '$command') 
                  (
': added submodule does remove untracked unignored file with same name when forced'
                  )
                )
              } 
              {
                (SQ <'\n'> <'\t\tprolog &&\n'> <'\t\treset_work_tree_to no_submodule &&\n'> <'\t\t(\n'> 
                  <'\t\t\tcd submodule_update &&\n'> <'\t\t\tgit branch -t add_sub1 origin/add_sub1 &&\n'> <'\t\t\t>sub1 &&\n'> 
                  <'\t\t\t$command add_sub1 &&\n'> <'\t\t\ttest_superproject_content origin/add_sub1 &&\n'> <'\t\t\ttest_dir_is_empty sub1\n'> <'\t\t)\n'> 
                  <'\t'>
                )
              }
            )
            (C {(test_expect_success)} 
              {
                (DQ ($ VSub_Name '$command') 
                  (': replace tracked file with submodule creates empty directory')
                )
              } 
              {
                (SQ <'\n'> <'\t\tprolog &&\n'> <'\t\treset_work_tree_to replace_sub1_with_file &&\n'> 
                  <'\t\t(\n'> <'\t\t\tcd submodule_update &&\n'> 
                  <'\t\t\tgit branch -t replace_file_with_sub1 origin/replace_file_with_sub1 &&\n'> <'\t\t\t$command replace_file_with_sub1 &&\n'> 
                  <'\t\t\ttest_superproject_content origin/replace_file_with_sub1 &&\n'> <'\t\t\ttest_dir_is_empty sub1 &&\n'> <'\t\t\tgit submodule update --init --recursive &&\n'> 
                  <'\t\t\ttest_submodule_content sub1 origin/replace_file_with_sub1\n'> <'\t\t)\n'> <'\t'>
                )
              }
            )
            (C {(test_expect_success)} 
              {(DQ ($ VSub_Name '$command') (': replace directory with submodule'))} 
              {
                (SQ <'\n'> <'\t\tprolog &&\n'> 
                  <'\t\treset_work_tree_to replace_sub1_with_directory &&\n'> <'\t\t(\n'> <'\t\t\tcd submodule_update &&\n'> 
                  <
'\t\t\tgit branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 &&\n'
                  > <'\t\t\t$command replace_directory_with_sub1 &&\n'> 
                  <'\t\t\ttest_superproject_content origin/replace_directory_with_sub1 &&\n'> <'\t\t\ttest_dir_is_empty sub1 &&\n'> <'\t\t\tgit submodule update --init --recursive &&\n'> 
                  <'\t\t\ttest_submodule_content sub1 origin/replace_directory_with_sub1\n'> <'\t\t)\n'> <'\t'>
                )
              }
            )
            (C {(test_expect_success)} 
              {
                (DQ ($ VSub_Name '$command') 
                  (': removed submodule leaves submodule directory and its contents in place')
                )
              } 
              {
                (SQ <'\n'> <'\t\tprolog &&\n'> <'\t\treset_work_tree_to add_sub1 &&\n'> <'\t\t(\n'> 
                  <'\t\t\tcd submodule_update &&\n'> <'\t\t\tgit branch -t remove_sub1 origin/remove_sub1 &&\n'> <'\t\t\t$command remove_sub1 &&\n'> 
                  <'\t\t\ttest_superproject_content origin/remove_sub1 &&\n'> <'\t\t\ttest_submodule_content sub1 origin/add_sub1\n'> <'\t\t)\n'> <'\t'>
                )
              }
            )
            (C {(test_expect_success)} 
              {
                (DQ ($ VSub_Name '$command') 
                  (': removed submodule leaves submodule containing a .git directory alone')
                )
              } 
              {
                (SQ <'\n'> <'\t\tprolog &&\n'> <'\t\treset_work_tree_to add_sub1 &&\n'> <'\t\t(\n'> 
                  <'\t\t\tcd submodule_update &&\n'> <'\t\t\tgit branch -t remove_sub1 origin/remove_sub1 &&\n'> 
                  <'\t\t\treplace_gitfile_with_git_dir sub1 &&\n'> <'\t\t\t$command remove_sub1 &&\n'> <'\t\t\ttest_superproject_content origin/remove_sub1 &&\n'> 
                  <'\t\t\ttest_git_directory_is_unchanged sub1 &&\n'> <'\t\t\ttest_submodule_content sub1 origin/add_sub1\n'> <'\t\t)\n'> <'\t'>
                )
              }
            )
            (C {(test_expect_failure)} 
              {(DQ ($ VSub_Name '$command') (': replace submodule with a directory must fail'))} 
              {
                (SQ <'\n'> <'\t\tprolog &&\n'> <'\t\treset_work_tree_to add_sub1 &&\n'> <'\t\t(\n'> 
                  <'\t\t\tcd submodule_update &&\n'> <'\t\t\tgit branch -t replace_sub1_with_directory origin/replace_sub1_with_directory &&\n'> 
                  <'\t\t\ttest_must_fail $command replace_sub1_with_directory &&\n'> <'\t\t\ttest_superproject_content origin/add_sub1 &&\n'> 
                  <'\t\t\ttest_submodule_content sub1 origin/add_sub1\n'> <'\t\t)\n'> <'\t'>
                )
              }
            )
            (C {(test_expect_failure)} 
              {
                (DQ ($ VSub_Name '$command') 
                  (': replace submodule containing a .git directory with a directory must fail')
                )
              } 
              {
                (SQ <'\n'> <'\t\tprolog &&\n'> <'\t\treset_work_tree_to add_sub1 &&\n'> <'\t\t(\n'> 
                  <'\t\t\tcd submodule_update &&\n'> <'\t\t\tgit branch -t replace_sub1_with_directory origin/replace_sub1_with_directory &&\n'> 
                  <'\t\t\treplace_gitfile_with_git_dir sub1 &&\n'> <'\t\t\ttest_must_fail $command replace_sub1_with_directory &&\n'> 
                  <'\t\t\ttest_superproject_content origin/add_sub1 &&\n'> <'\t\t\ttest_git_directory_is_unchanged sub1 &&\n'> 
                  <'\t\t\ttest_submodule_content sub1 origin/add_sub1\n'> <'\t\t)\n'> <'\t'>
                )
              }
            )
            (C {(test_expect_failure)} 
              {(DQ ($ VSub_Name '$command') (': replace submodule with a file must fail'))} 
              {
                (SQ <'\n'> <'\t\tprolog &&\n'> <'\t\treset_work_tree_to add_sub1 &&\n'> <'\t\t(\n'> 
                  <'\t\t\tcd submodule_update &&\n'> <'\t\t\tgit branch -t replace_sub1_with_file origin/replace_sub1_with_file &&\n'> 
                  <'\t\t\ttest_must_fail $command replace_sub1_with_file &&\n'> <'\t\t\ttest_superproject_content origin/add_sub1 &&\n'> 
                  <'\t\t\ttest_submodule_content sub1 origin/add_sub1\n'> <'\t\t)\n'> <'\t'>
                )
              }
            )
            (C {(test_expect_failure)} 
              {
                (DQ ($ VSub_Name '$command') 
                  (': replace submodule containing a .git directory with a file must fail')
                )
              } 
              {
                (SQ <'\n'> <'\t\tprolog &&\n'> <'\t\treset_work_tree_to add_sub1 &&\n'> <'\t\t(\n'> 
                  <'\t\t\tcd submodule_update &&\n'> <'\t\t\tgit branch -t replace_sub1_with_file origin/replace_sub1_with_file &&\n'> 
                  <'\t\t\treplace_gitfile_with_git_dir sub1 &&\n'> <'\t\t\ttest_must_fail $command replace_sub1_with_file &&\n'> 
                  <'\t\t\ttest_superproject_content origin/add_sub1 &&\n'> <'\t\t\ttest_git_directory_is_unchanged sub1 &&\n'> 
                  <'\t\t\ttest_submodule_content sub1 origin/add_sub1\n'> <'\t\t)\n'> <'\t'>
                )
              }
            )
            (C {(test_expect_success)} 
              {
                (DQ ($ VSub_Name '$command') 
                  (': modified submodule does not update submodule work tree')
                )
              } 
              {
                (SQ <'\n'> <'\t\tprolog &&\n'> <'\t\treset_work_tree_to add_sub1 &&\n'> <'\t\t(\n'> 
                  <'\t\t\tcd submodule_update &&\n'> <'\t\t\tgit branch -t modify_sub1 origin/modify_sub1 &&\n'> <'\t\t\t$command modify_sub1 &&\n'> 
                  <'\t\t\ttest_superproject_content origin/modify_sub1 &&\n'> <'\t\t\ttest_submodule_content sub1 origin/add_sub1 &&\n'> <'\t\t\tgit submodule update &&\n'> 
                  <'\t\t\ttest_submodule_content sub1 origin/modify_sub1\n'> <'\t\t)\n'> <'\t'>
                )
              }
            )
            (C {(test_expect_success)} 
              {
                (DQ ($ VSub_Name '$command') 
                  (': modified submodule does not update submodule work tree to invalid commit')
                )
              } 
              {
                (SQ <'\n'> <'\t\tprolog &&\n'> <'\t\treset_work_tree_to add_sub1 &&\n'> <'\t\t(\n'> 
                  <'\t\t\tcd submodule_update &&\n'> <'\t\t\tgit branch -t invalid_sub1 origin/invalid_sub1 &&\n'> <'\t\t\t$command invalid_sub1 &&\n'> 
                  <'\t\t\ttest_superproject_content origin/invalid_sub1 &&\n'> <'\t\t\ttest_submodule_content sub1 origin/add_sub1 &&\n'> 
                  <'\t\t\ttest_must_fail git submodule update &&\n'> <'\t\t\ttest_submodule_content sub1 origin/add_sub1\n'> <'\t\t)\n'> <'\t'>
                )
              }
            )
            (C {(test_expect_success)} 
              {
                (DQ ($ VSub_Name '$command') 
                  (': modified submodule does not update submodule work tree from invalid commit')
                )
              } 
              {
                (SQ <'\n'> <'\t\tprolog &&\n'> <'\t\treset_work_tree_to invalid_sub1 &&\n'> <'\t\t(\n'> 
                  <'\t\t\tcd submodule_update &&\n'> <'\t\t\tgit branch -t valid_sub1 origin/valid_sub1 &&\n'> <'\t\t\t$command valid_sub1 &&\n'> 
                  <'\t\t\ttest_superproject_content origin/valid_sub1 &&\n'> <'\t\t\ttest_dir_is_empty sub1 &&\n'> <'\t\t\tgit submodule update --init --recursive &&\n'> 
                  <'\t\t\ttest_submodule_content sub1 origin/valid_sub1\n'> <'\t\t)\n'> <'\t'>
                )
              }
            )
          ]
          spids: [2198]
        )
      spids: [2193 2197]
    )
  ]
)