diff options
author | Junio C Hamano <gitster@pobox.com> | 2020-03-26 17:11:20 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-03-26 17:11:20 -0700 |
commit | fe870600fe2735782e9e8a8c5441f91b1a58e273 (patch) | |
tree | 9de44bb368d796cf8ff0bbe41a7c8fae52a4904a /unpack-trees.c | |
parent | a7d14a44285d3ec4b25bf9e3b7df701221350661 (diff) | |
parent | 846f34d3514b81764dea7c2a4851f6187ab31aad (diff) | |
download | git-fe870600fe2735782e9e8a8c5441f91b1a58e273.tar.gz |
Merge branch 'pb/recurse-submodules-fix'
Fix "git checkout --recurse-submodules" of a nested submodule
hierarchy.
* pb/recurse-submodules-fix:
t/lib-submodule-update: add test removing nested submodules
unpack-trees: check for missing submodule directory in merged_entry
unpack-trees: remove outdated description for verify_clean_submodule
t/lib-submodule-update: move a test to the right section
t/lib-submodule-update: remove outdated test description
t7112: remove mention of KNOWN_FAILURE_SUBMODULE_RECURSIVE_NESTED
Diffstat (limited to 'unpack-trees.c')
-rw-r--r-- | unpack-trees.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/unpack-trees.c b/unpack-trees.c index 1ecdab3304..1dbcb8c1c3 100644 --- a/unpack-trees.c +++ b/unpack-trees.c @@ -1815,9 +1815,6 @@ static void invalidate_ce_path(const struct cache_entry *ce, /* * Check that checking out ce->sha1 in subdir ce->name is not * going to overwrite any working files. - * - * Currently, git does not checkout subprojects during a superproject - * checkout, so it is not going to overwrite anything. */ static int verify_clean_submodule(const char *old_sha1, const struct cache_entry *ce, @@ -2067,7 +2064,7 @@ static int merged_entry(const struct cache_entry *ce, } invalidate_ce_path(merge, o); - if (submodule_from_ce(ce)) { + if (submodule_from_ce(ce) && file_exists(ce->name)) { int ret = check_submodule_move_head(ce, NULL, oid_to_hex(&ce->oid), o); @@ -2096,7 +2093,7 @@ static int merged_entry(const struct cache_entry *ce, invalidate_ce_path(old, o); } - if (submodule_from_ce(ce)) { + if (submodule_from_ce(ce) && file_exists(ce->name)) { int ret = check_submodule_move_head(ce, oid_to_hex(&old->oid), oid_to_hex(&ce->oid), o); |