From: Glen Choo <chooglen@google.com>
To: git@vger.kernel.org
Cc: "Glen Choo" <chooglen@google.com>,
"Junio C Hamano" <gitster@pobox.com>,
"Atharva Raykar" <raykar.ath@gmail.com>,
"Emily Shaffer" <emilyshaffer@google.com>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
"Josh Steadmon" <steadmon@google.com>
Subject: [PATCH 13/13] submodule--helper update-clone: check for --filter and --init
Date: Mon, 28 Feb 2022 16:08:16 -0800 [thread overview]
Message-ID: <20220301000816.56177-14-chooglen@google.com> (raw)
In-Reply-To: <20220301000816.56177-1-chooglen@google.com>
"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>
---
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 0fc07d35ae..ea88f39fb4 100644
--- a/builtin/submodule--helper.c
+++ b/builtin/submodule--helper.c
@@ -2544,7 +2544,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;
@@ -2555,6 +2560,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)
diff --git a/git-submodule.sh b/git-submodule.sh
index 51be7c7f7e..aa8bdfca9d 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -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} \
--
2.33.GIT
next prev parent reply other threads:[~2022-03-01 0:09 UTC|newest]
Thread overview: 75+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-01 0:08 [PATCH 00/13] submodule: convert parts of 'update' to C Glen Choo
2022-03-01 0:08 ` [PATCH 01/13] submodule tests: test for init and update failure output Glen Choo
2022-03-01 0:08 ` [PATCH 02/13] submodule--helper: remove update-module-mode Glen Choo
2022-03-01 0:08 ` [PATCH 03/13] submodule--helper: reorganize code for sh to C conversion Glen Choo
2022-03-01 0:08 ` [PATCH 04/13] submodule--helper run-update-procedure: remove --suboid Glen Choo
2022-03-01 0:08 ` [PATCH 05/13] submodule--helper: remove ensure-core-worktree Glen Choo
2022-03-01 0:08 ` [PATCH 06/13] submodule--helper: get remote names from any repository Glen Choo
2022-03-01 2:46 ` Junio C Hamano
2022-03-01 4:26 ` Glen Choo
2022-03-01 0:08 ` [PATCH 07/13] submodule--helper: don't use bitfield indirection for parse_options() Glen Choo
2022-03-01 0:08 ` [PATCH 08/13] submodule--helper run-update-procedure: learn --remote Glen Choo
2022-03-01 0:08 ` [PATCH 09/13] submodule--helper: refactor get_submodule_displaypath() Glen Choo
2022-03-01 0:08 ` [PATCH 10/13] submodule--helper: allow setting superprefix for init_submodule() Glen Choo
2022-03-01 0:08 ` [PATCH 11/13] submodule--helper update-clone: learn --init Glen Choo
2022-03-01 0:08 ` [PATCH 12/13] submodule update: add tests for --filter Glen Choo
2022-03-01 0:08 ` Glen Choo [this message]
2022-03-01 1:29 ` [PATCH 00/13] submodule: convert parts of 'update' to C Glen Choo
2022-03-01 4:41 ` [PATCH v2 " Glen Choo
2022-03-01 4:41 ` [PATCH v2 01/13] submodule tests: test for init and update failure output Glen Choo
2022-03-01 4:41 ` [PATCH v2 02/13] submodule--helper: remove update-module-mode Glen Choo
2022-03-01 4:41 ` [PATCH v2 03/13] submodule--helper: reorganize code for sh to C conversion Glen Choo
2022-03-01 4:41 ` [PATCH v2 04/13] submodule--helper run-update-procedure: remove --suboid Glen Choo
2022-03-01 4:41 ` [PATCH v2 05/13] submodule--helper: remove ensure-core-worktree Glen Choo
2022-03-01 4:41 ` [PATCH v2 06/13] submodule--helper: get remote names from any repository Glen Choo
2022-03-01 8:01 ` Ævar Arnfjörð Bjarmason
2022-03-01 4:41 ` [PATCH v2 07/13] submodule--helper: don't use bitfield indirection for parse_options() Glen Choo
2022-03-01 4:41 ` [PATCH v2 08/13] submodule--helper run-update-procedure: learn --remote Glen Choo
2022-03-01 4:41 ` [PATCH v2 09/13] submodule--helper: refactor get_submodule_displaypath() Glen Choo
2022-03-01 8:05 ` Ævar Arnfjörð Bjarmason
2022-03-01 4:41 ` [PATCH v2 10/13] submodule--helper: allow setting superprefix for init_submodule() Glen Choo
2022-03-01 4:41 ` [PATCH v2 11/13] submodule--helper update-clone: learn --init Glen Choo
2022-03-01 4:41 ` [PATCH v2 12/13] submodule update: add tests for --filter Glen Choo
2022-03-01 8:07 ` Ævar Arnfjörð Bjarmason
2022-03-01 18:30 ` Glen Choo
2022-03-01 4:41 ` [PATCH v2 13/13] submodule--helper update-clone: check for --filter and --init Glen Choo
2022-03-01 7:21 ` Ævar Arnfjörð Bjarmason
2022-03-01 7:34 ` Junio C Hamano
2022-03-01 18:34 ` Glen Choo
2022-03-03 10:06 ` Ævar Arnfjörð Bjarmason
2022-03-03 0:57 ` [PATCH v3 00/13] submodule: convert parts of 'update' to C Glen Choo
2022-03-03 0:57 ` [PATCH v3 01/13] submodule tests: test for init and update failure output Glen Choo
2022-03-03 0:57 ` [PATCH v3 02/13] submodule--helper: remove update-module-mode Glen Choo
2022-03-03 0:57 ` [PATCH v3 03/13] submodule--helper: reorganize code for sh to C conversion Glen Choo
2022-03-03 0:57 ` [PATCH v3 04/13] submodule--helper run-update-procedure: remove --suboid Glen Choo
2022-03-03 21:09 ` Junio C Hamano
2022-03-03 0:57 ` [PATCH v3 05/13] submodule--helper: remove ensure-core-worktree Glen Choo
2022-03-03 21:25 ` Junio C Hamano
2022-03-04 21:27 ` Glen Choo
2022-03-03 0:57 ` [PATCH v3 06/13] submodule--helper: get remote names from any repository Glen Choo
2022-03-03 0:57 ` [PATCH v3 07/13] submodule--helper: don't use bitfield indirection for parse_options() Glen Choo
2022-03-03 0:57 ` [PATCH v3 08/13] submodule--helper run-update-procedure: learn --remote Glen Choo
2022-03-03 21:35 ` Junio C Hamano
2022-03-04 21:29 ` Glen Choo
2022-03-03 0:57 ` [PATCH v3 09/13] submodule--helper: refactor get_submodule_displaypath() Glen Choo
2022-03-03 0:57 ` [PATCH v3 10/13] submodule--helper: allow setting superprefix for init_submodule() Glen Choo
2022-03-03 0:57 ` [PATCH v3 11/13] submodule--helper update-clone: learn --init Glen Choo
2022-03-03 0:57 ` [PATCH v3 12/13] submodule update: add tests for --filter Glen Choo
2022-03-03 0:57 ` [PATCH v3 13/13] submodule--helper update-clone: check for --filter and --init Glen Choo
2022-03-03 9:58 ` [PATCH v3 00/13] submodule: convert parts of 'update' to C Ævar Arnfjörð Bjarmason
2022-03-03 21:41 ` Junio C Hamano
2022-03-05 0:13 ` [PATCH v4 " Glen Choo
2022-03-05 0:13 ` [PATCH v4 01/13] submodule tests: test for init and update failure output Glen Choo
2022-03-05 0:13 ` [PATCH v4 02/13] submodule--helper: remove update-module-mode Glen Choo
2022-03-05 0:13 ` [PATCH v4 03/13] submodule--helper: reorganize code for sh to C conversion Glen Choo
2022-03-05 0:13 ` [PATCH v4 04/13] submodule--helper run-update-procedure: remove --suboid Glen Choo
2022-03-05 0:13 ` [PATCH v4 05/13] submodule--helper: get remote names from any repository Glen Choo
2022-03-05 0:13 ` [PATCH v4 06/13] submodule--helper: don't use bitfield indirection for parse_options() Glen Choo
2022-03-05 0:13 ` [PATCH v4 07/13] submodule--helper run-update-procedure: learn --remote Glen Choo
2022-03-05 0:13 ` [PATCH v4 08/13] submodule--helper: refactor get_submodule_displaypath() Glen Choo
2022-03-05 0:13 ` [PATCH v4 09/13] submodule--helper: allow setting superprefix for init_submodule() Glen Choo
2022-03-05 0:13 ` [PATCH v4 10/13] submodule--helper update-clone: learn --init Glen Choo
2022-03-05 0:13 ` [PATCH v4 11/13] submodule--helper: remove ensure-core-worktree Glen Choo
2022-03-05 0:14 ` [PATCH v4 12/13] submodule update: add tests for --filter Glen Choo
2022-03-05 0:14 ` [PATCH v4 13/13] submodule--helper update-clone: check for --filter and --init Glen Choo
2022-03-05 0:40 ` [PATCH v4 00/13] submodule: convert parts of 'update' to C Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220301000816.56177-14-chooglen@google.com \
--to=chooglen@google.com \
--cc=avarab@gmail.com \
--cc=emilyshaffer@google.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=raykar.ath@gmail.com \
--cc=steadmon@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).