Merge branch 'gc/submodule-update-part2'

"git submodule update" without pathspec should silently skip an
uninitialized submodule, but it started to become noisy by mistake.

* gc/submodule-update-part2:
  submodule--helper: fix initialization of warn_if_uninitialized
maint
Junio C Hamano 2022-04-28 10:46:04 -07:00
commit 740deeadd3
2 changed files with 33 additions and 1 deletions

View File

@ -2026,7 +2026,6 @@ struct update_data {
.references = STRING_LIST_INIT_DUP, \
.single_branch = -1, \
.max_jobs = 1, \
.warn_if_uninitialized = 1, \
}

static void next_submodule_warn_missing(struct submodule_update_clone *suc,

View File

@ -670,6 +670,39 @@ test_expect_success 'submodule update --init skips submodule with update=none' '
)
'

test_expect_success 'submodule update with pathspec warns against uninitialized ones' '
test_when_finished "rm -fr selective" &&
git clone super selective &&
(
cd selective &&
git submodule init submodule &&

git submodule update submodule 2>err &&
! grep "Submodule path .* not initialized" err &&

git submodule update rebasing 2>err &&
grep "Submodule path .rebasing. not initialized" err &&

test_path_exists submodule/.git &&
test_path_is_missing rebasing/.git
)

'

test_expect_success 'submodule update without pathspec updates only initialized ones' '
test_when_finished "rm -fr selective" &&
git clone super selective &&
(
cd selective &&
git submodule init submodule &&
git submodule update 2>err &&
test_path_exists submodule/.git &&
test_path_is_missing rebasing/.git &&
! grep "Submodule path .* not initialized" err
)

'

test_expect_success 'submodule update continues after checkout error' '
(cd super &&
git reset --hard HEAD &&