Skip to content

Commit

Permalink
submodule--helper update-clone: check for --filter and --init
Browse files Browse the repository at this point in the history
"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 <chooglen@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
chooglen authored and gitster committed Mar 5, 2022
1 parent 104744f commit c9d2562
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 6 deletions.
20 changes: 19 additions & 1 deletion builtin/submodule--helper.c
Expand Up @@ -2545,7 +2545,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>...]"),
NULL
};
suc.prefix = prefix;
Expand All @@ -2556,6 +2561,19 @@ static int update_clone(int argc, const char **argv, const char *prefix)
memset(&filter_options, 0, sizeof(filter_options));
argc = parse_options(argc, argv, prefix, module_update_clone_options,
git_submodule_helper_usage, 0);

if (filter_options.choice && !suc.init) {
/*
* NEEDSWORK: Don't use usage_with_options() because the
* usage string is for "git submodule update", but the
* options are for "git submodule--helper update-clone".
*
* This will no longer be an issue when "update-clone"
* is replaced by "git submodule--helper update".
*/
usage(git_submodule_helper_usage[0]);
}

suc.filter_options = &filter_options;

if (update)
Expand Down
5 changes: 0 additions & 5 deletions git-submodule.sh
Expand Up @@ -356,11 +356,6 @@ cmd_update()
shift
done

if test -n "$filter" && test "$init" != "1"
then
usage
fi

{
git ${wt_prefix:+-C "$wt_prefix"} submodule--helper update-clone \
${GIT_QUIET:+--quiet} \
Expand Down

0 comments on commit c9d2562

Please sign in to comment.