"Orgad Shaneh via GitGitGadget" <gitgitgadget@xxxxxxxxx> writes: > From: Orgad Shaneh <orgads@xxxxxxxxx> > > The .warn_if_uninitialized member was introduced by 48308681 > (git submodule update: have a dedicated helper for cloning, > 2016-02-29) to submodule_update_clone struct and initialized to > false. When c9911c93 (submodule--helper: teach update_data more > options, 2022-03-15) moved it to update_data struct, it started > to initialize it to true but this change was not explained in > its log message. > > The member is set to true only when pathspec was given, and is > used when a submodule that matched the pathspec is found > uninitialized to give diagnostic message. "submodule update" > without pathspec is supposed to iterate over all submodules > (i.e. without pathspec limitation) and update only the > initialized submodules, and finding uninitialized submodules > during the iteration is a totally expected and normal thing that > should not be warned. > > Signed-off-by: Orgad Shaneh <orgads@xxxxxxxxx> > --- > submodule--helper: fix initialization of warn_if_uninitialized > > The .warn_if_uninitialized member was introduced by 48308681 (git > submodule update: have a dedicated helper for cloning, 2016-02-29) to > submodule_update_clone struct and initialized to false. When c9911c93 > (submodule--helper: teach update_data more options, 2022-03-15) moved it > to update_data struct, it started to initialize it to true but this > change was not explained in its log message. > > The member is set to true only when pathspec was given, and is used when > a submodule that matched the pathspec is found uninitialized to give > diagnostic message. "submodule update" without pathspec is supposed to > iterate over all submodules (i.e. without pathspec limitation) and > update only the initialized submodules, and finding uninitialized > submodules during the iteration is a totally expected and normal thing > that should not be warned. > > Signed-off-by: Orgad Shaneh orgads@xxxxxxxxx > > Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1258%2Forgads%2Fsub-no-warn-v2 > Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1258/orgads/sub-no-warn-v2 > Pull-Request: https://github.com/git/git/pull/1258 > > Range-diff vs v1: > > 1: 089a52a50b4 ! 1: 1e34c9cad18 submodule--helper: fix initialization of warn_if_uninitialized > @@ Metadata > ## Commit message ## > submodule--helper: fix initialization of warn_if_uninitialized > > - This field is supposed to be off by default, and it is only enabled when > - running `git submodule update <path>`, and path is not initialized. > + The .warn_if_uninitialized member was introduced by 48308681 > + (git submodule update: have a dedicated helper for cloning, > + 2016-02-29) to submodule_update_clone struct and initialized to > + false. When c9911c93 (submodule--helper: teach update_data more > + options, 2022-03-15) moved it to update_data struct, it started > + to initialize it to true but this change was not explained in > + its log message. > > - Commit c9911c9358 changed it to enabled by default. This affects for > - example git checkout, which displays the following warning for each > - uninitialized submodule: > - > - Submodule path 'sub' not initialized > - Maybe you want to use 'update --init'? > - > - Amends c9911c9358e611390e2444f718c73900d17d3d60. > + The member is set to true only when pathspec was given, and is > + used when a submodule that matched the pathspec is found > + uninitialized to give diagnostic message. "submodule update" > + without pathspec is supposed to iterate over all submodules > + (i.e. without pathspec limitation) and update only the > + initialized submodules, and finding uninitialized submodules > + during the iteration is a totally expected and normal thing that > + should not be warned. > > Signed-off-by: Orgad Shaneh <orgads@xxxxxxxxx> > > @@ builtin/submodule--helper.c: struct update_data { > .single_branch = -1, \ > .max_jobs = 1, \ > - .warn_if_uninitialized = 1, \ > -+ .warn_if_uninitialized = 0, \ > } > > static void next_submodule_warn_missing(struct submodule_update_clone *suc, > > > builtin/submodule--helper.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c > index 2c87ef9364f..1a8e5d06214 100644 > --- a/builtin/submodule--helper.c > +++ b/builtin/submodule--helper.c > @@ -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, > > base-commit: 6cd33dceed60949e2dbc32e3f0f5e67c4c882e1e > -- > gitgitgadget This was clearly a mistake on my part :( The fix looks good to me, thanks!