Subject: Re: [PATCH v2 13/13] submodule--helper update-clone: check for --filter and --init

From: Ævar Arnfjörð Bjarmason <[email-masked]>
Date: Tue, 01 Mar 2022 08:21:58 +0100

On Mon, Feb 28 2022, Glen Choo wrote:

> "git submodule update --filter" also requires the "--init" option. Teach
> update-clone to do this usage check in C and remove the check from
> git-submodule.sh.
>
> In addition, change update-clone's usage string so that it teaches users
> about "git submodule update" instead of "git submodule--helper
> update-clone" (the string is copied from git-submodule.sh). This should
> be more helpful to users since they don't invoke update-clone directly.
>
> Signed-off-by: Glen Choo <[email-masked]>
> ---
> Since we expect users to act upon the usage string, I've updated it to
> reflect "git submodule update" [1] (since that's what users actually
> invoke), but I feel a bit iffy about not being able to use
> usage_with_options() (because the options and usage string are for
> different commands).
>
> This might indicate that this is work we should put off until the
> conversion to C is mostly complete, but on the other hand, the usage
> string is still more helpful than it used to be because we never
> presented users with the options anyway.
>
> [1] It's not immediately obvious which command we prefer to show - some
> other commands use "git submodule--helper" and others use "git
> submodule".
>
>  builtin/submodule--helper.c | 20 +++++++++++++++++++-
>  git-submodule.sh            |  5 -----
>  2 files changed, 19 insertions(+), 6 deletions(-)
>
> diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c
> index 2ffc070319..3e8a05a052 100644
> --- a/builtin/submodule--helper.c
> +++ b/builtin/submodule--helper.c
> @@ -2543,7 +2543,12 @@ static int update_clone(int argc, const char **argv, const char *prefix)
>  	};
>  
>  	const char *const git_submodule_helper_usage[] = {
> -		N_("git submodule--helper update-clone [--prefix=<path>] [<path>...]"),
> +		N_("git submodule [--quiet] update"
> +		"[--init [--filter=<filter-spec>]] [--remote]"
> +		"[-N|--no-fetch] [-f|--force]"
> +		"[--checkout|--merge|--rebase]"
> +		"[--[no-]recommend-shallow] [--reference <repository>]"
> +		"[--recursive] [--[no-]single-branch] [--] [<path>...]"),

Since this has <repository>, <path> etc. it should still be marked for
translation with N_().