Merge branch 'sb/fix-fetching-moved-submodules'

The code to try seeing if a fetch is necessary in a submodule
during a fetch with --recurse-submodules got confused when the path
to the submodule was changed in the range of commits in the
superproject, sometimes showing "(null)".  This has been corrected.

* sb/fix-fetching-moved-submodules:
  t5526: test recursive submodules when fetching moved submodules
  submodule: fix NULL correctness in renamed broken submodules
This commit is contained in:
Junio C Hamano 2018-06-28 12:53:34 -07:00
commit 085d2abf57
2 changed files with 5 additions and 7 deletions

View File

@ -740,12 +740,14 @@ static void collect_changed_submodules_cb(struct diff_queue_struct *q,
else {
name = default_name_or_path(p->two->path);
/* make sure name does not collide with existing one */
submodule = submodule_from_name(the_repository, commit_oid, name);
if (name)
submodule = submodule_from_name(the_repository,
commit_oid, name);
if (submodule) {
warning("Submodule in commit %s at path: "
"'%s' collides with a submodule named "
"the same. Skipping it.",
oid_to_hex(commit_oid), name);
oid_to_hex(commit_oid), p->two->path);
name = NULL;
}
}

View File

@ -574,11 +574,7 @@ test_expect_success "fetch new commits when submodule got renamed" '
git clone . downstream_rename &&
(
cd downstream_rename &&
git submodule update --init &&
# NEEDSWORK: we omitted --recursive for the submodule update here since
# that does not work. See test 7001 for mv "moving nested submodules"
# for details. Once that is fixed we should add the --recursive option
# here.
git submodule update --init --recursive &&
git checkout -b rename &&
git mv submodule submodule_renamed &&
(