Browse Source

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 3 years ago
parent
commit
740deeadd3
  1. 1
      builtin/submodule--helper.c
  2. 33
      t/t7406-submodule-update.sh

1
builtin/submodule--helper.c

@ -2026,7 +2026,6 @@ struct update_data { @@ -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,

33
t/t7406-submodule-update.sh

@ -670,6 +670,39 @@ test_expect_success 'submodule update --init skips submodule with update=none' ' @@ -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 &&

Loading…
Cancel
Save