Re: [PATCH v2] submodule--helper: fix initialization of warn_if_uninitialized
- From
Glen Choo <chooglen@google.com>
- Date
- Apr 27, 2022, 22:19 UTC
- Message-ID
- <kl6lfslyp3ti.fsf@chooglen-macbookpro.roam.corp.google.com>
- In-Reply-To
- <pull.1258.v2.git.git.1650890741430.gitgitgadget@gmail.com>
"Orgad Shaneh via GitGitGadget" <gitgitgadget@gmail.com> writes:
Show 109 quoted lines
> From: Orgad Shaneh <orgads@gmail.com>
>
> 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@gmail.com>
> ---
> 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@gmail.com
>
> 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@gmail.com>
>
> @@ 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
> --
> gitgitgadgetThis was clearly a mistake on my part :( The fix looks good to me, thanks!