Subject: [PATCH 0/6] unpack-trees: fix '--recurse-submodules' when switching from no submodules to nested submodules

From: "Philippe Blain via GitGitGadget" <[email-masked]>
Date: Mon, 17 Feb 2020 04:53:00 +0000

Currently, using git checkout --recurse-submodules (or the submodule.recurse 
config) to switch from a commit with no submodules to a commit with
initialized nested submodules fails because a child git process tries to cd 
to a yet non-existing nested submodule directory. reset and read-tree are
also affected in the same way since they also use the unpack-trees
machinery.

The 5th commit in this series fixes this bug. The first four are clean-up
patches in tests and in unpack-trees that mostly remove outdated
comments/dead code. The 6th commit adds a test for the reverse transition
(nested submodules -> no submodules) as it was not being tested.

The commit message of the 5th commit is quite long, as I tried to describe
clearly what is the cause of the bug.

Philippe Blain (6):
  t7112: remove mention of KNOWN_FAILURE_SUBMODULE_RECURSIVE_NESTED
  t/lib-submodule-update: remove outdated test description
  t/lib-submodule-update: move a test to the right section
  unpack-trees: remove outdated description for verify_clean_submodule
  unpack-trees: check for missing submodule directory in merged_entry
  t/lib-submodule-update: add test removing nested submodules

 t/lib-submodule-update.sh  | 68 +++++++++++++++++++++++++++-----------
 t/t7112-reset-submodule.sh |  1 -
 unpack-trees.c             |  7 ++--
 3 files changed, 51 insertions(+), 25 deletions(-)

base-commit: d8437c57fa0752716dde2d3747e7c22bf7ce2e41
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-555%2Fphil-blain%2Fcheckout-recurse-nested-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-555/phil-blain/checkout-recurse-nested-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/555
-- 
gitgitgadget