Re: [GSoC PATCH] submodule: warn on valueless active config
- From
D. Ben Knoble <ben.knoble@gmail.com>
- Date
- Aug 14, 2026, 19:07 UTC
- Message-ID
- <CALnO6CCDQBWS7dP7CZSbKE3f8rw4x=NAJhGyE7HCJRjJq_2dEA@mail.gmail.com>
- In-Reply-To
- <CABB4Jh1fUXKNn483FjD2S6U4cYVMEP6z+fjWMi8XRT+NQdNnYw@mail.gmail.com>
On Fri, Aug 14, 2026 at 2:05 PM Tilak Raaz <raaztilak07@gmail.com> wrote:
Show 73 quoted lines
>
> On Fri, Aug 14, 2026 Weijie Yuan <wy@wyuan.org> wrote:
> > Thanks!
> >
> > However, my suggestion is that it would be better to place your patch in
> > the main body of the email text rather than in the attachment.
> > Please take a look at Documentation/SubmittingPatches
> >
> > And it also seems that the automated program 'b4' is unable to recognize
> > your patch, which may make the development process less convenient for
> > the developers and the maintainer.
>
> Hi Weijie,
>
> Thank you for the quick feedback and for pointing me to the documentation!
> I apologize for using an attachment; I am still getting my mailing list workflow
> configured.
>
> Here is the patch provided inline as plain text so that `b4` can parse
> it correctly:
>
> From 08a2f244efab6e4cf21638d87a721ca664ed9433 Mon Sep 17 00:00:00 2001
> From: tilak-raaz <raaztilak07@gmail.com>
> Date: Fri, 14 Aug 2026 22:50:11 +0530
> Subject: [GSoC PATCH] submodule: warn on valueless active config
>
> The config parser previously threw a hard error if 'submodule.active'
> was provided without a value, causing commands to abort.
>
> Swap repo_config_get_string_multi() to repo_config_get_value_multi()
> to parse valueless keys safely, and emit a warning to the user rather
> than crashing.
>
> This resolves a NEEDSWORK comment in submodule.c.
>
> Signed-off-by: tilak-raaz <raaztilak07@gmail.com>
> ---
> submodule.c | 16 ++++++++--------
> t/t7400-submodule-basic.sh | 11 +++++++++++
> 2 files changed, 19 insertions(+), 8 deletions(-)
>
> diff --git a/submodule.c b/submodule.c
> index 5c92575888..b709c429ba 100644
> --- a/submodule.c
> +++ b/submodule.c
> @@ -231,11 +231,7 @@ int
> option_parse_recurse_submodules_worktree_updater(const struct option
> *opt,
> /*
> * Determine if a submodule has been initialized at a given 'path'
> */
> -/*
> - * NEEDSWORK: Emit a warning if submodule.active exists, but is valueless,
> - * ie, the config looks like: "[submodule] active\n".
> - * Since that is an invalid pathspec, we should inform the user.
> - */
> +
> int is_tree_submodule_active(struct repository *repo,
> const struct object_id *treeish_name,
> const char *path)
> @@ -261,14 +257,18 @@ int is_tree_submodule_active(struct repository *repo,
> free(key);
>
> /* submodule.active is set */
> - if (!repo_config_get_string_multi(repo, "submodule.active", &sl)) {
> + if (!repo_config_get_value_multi(repo, "submodule.active", &sl)) {
> struct pathspec ps;
> struct strvec args = STRVEC_INIT;
> const struct string_list_item *item;
>
> for_each_string_list_item(item, sl) {
> - strvec_push(&args, item->string);
> - }It's hard to tell, but I think (depending on _how_ you sent this patch with GMail) the indentation has become corrupted, and the patch won't apply.
Give the tips in git-send-email.io a try; especially with GMail, I've found the safest way to send patches is with git-send-email. (I reply to conversations from just about any mail client, though.)