From: Junio C Hamano <gitster@pobox.com>
To: Jeff King <peff@peff.net>
Cc: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
"Jonathan Nieder" <jrnieder@gmail.com>,
"Zero King" <l2dy@macports.org>,
"Git Mailing List" <git@vger.kernel.org>
Subject: Re: [PATCH 8/8] t0012: test "-h" with builtins
Date: Thu, 01 Jun 2017 14:42:13 +0900 [thread overview]
Message-ID: <xmqq7f0w6z7u.fsf@gitster.mtv.corp.google.com> (raw)
In-Reply-To: <xmqqinkg734c.fsf@gitster.mtv.corp.google.com> (Junio C. Hamano's message of "Thu, 01 Jun 2017 13:17:55 +0900")
Junio C Hamano <gitster@pobox.com> writes:
> Heh, I found another ;-)
>
> 95e98cd9 ("revision.c: use refs_for_each*() instead of
> for_each_*_submodule()", 2017-04-19), which is in the middle of
> Duy's nd/prune-in-worktree series, does this:
> ...
> when jk/consistent-h is merged into it and then "git diff-files -h"
> is run.
>
> I guess anything that calls setup_revisions() from the "git cmd -h"
> bypass need to be prepared with that
>
> check_help_option(argc, argv, usage, options);
>
> thing. Which is a bit sad, but I tend to agree with you that
> restructuring to make usage[] of everybody available to git.c
> is probably too noisy for the benefit it would give us.
For now, I will mix this in when queuing the whole thing in 'pu', as
I hate to push out something that does not even work for me to the
general public.
-- >8 --
Subject: [PATCH] diff- and log- family: handle "git cmd -h" early
"git $builtin -h" bypasses the usual repository setup and calls the
cmd_$builtin() function, expecting it to show the help text.
Unfortunately the commands in the log- and the diff- family want to
call into the revisions machinery, which by definition needs to have
a repository already discovered, before they can parse the options.
Handle the "git $builtin -h" special case very early in these
commands to work around potential issues.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
builtin/diff-files.c | 3 +++
builtin/diff-index.c | 3 +++
builtin/diff-tree.c | 3 +++
builtin/rev-list.c | 3 +++
4 files changed, 12 insertions(+)
diff --git a/builtin/diff-files.c b/builtin/diff-files.c
index 15c61fd8d1..6be1df684a 100644
--- a/builtin/diff-files.c
+++ b/builtin/diff-files.c
@@ -20,6 +20,9 @@ int cmd_diff_files(int argc, const char **argv, const char *prefix)
int result;
unsigned options = 0;
+ if (argc == 2 && !strcmp(argv[1], "-h"))
+ usage(diff_files_usage);
+
init_revisions(&rev, prefix);
gitmodules_config();
git_config(git_diff_basic_config, NULL); /* no "diff" UI options */
diff --git a/builtin/diff-index.c b/builtin/diff-index.c
index 1af373d002..02dd35ba45 100644
--- a/builtin/diff-index.c
+++ b/builtin/diff-index.c
@@ -17,6 +17,9 @@ int cmd_diff_index(int argc, const char **argv, const char *prefix)
int i;
int result;
+ if (argc == 2 && !strcmp(argv[1], "-h"))
+ usage(diff_cache_usage);
+
init_revisions(&rev, prefix);
gitmodules_config();
git_config(git_diff_basic_config, NULL); /* no "diff" UI options */
diff --git a/builtin/diff-tree.c b/builtin/diff-tree.c
index 5ea1c14317..f633b10b08 100644
--- a/builtin/diff-tree.c
+++ b/builtin/diff-tree.c
@@ -105,6 +105,9 @@ int cmd_diff_tree(int argc, const char **argv, const char *prefix)
struct setup_revision_opt s_r_opt;
int read_stdin = 0;
+ if (argc == 2 && !strcmp(argv[1], "-h"))
+ usage(diff_tree_usage);
+
init_revisions(opt, prefix);
gitmodules_config();
git_config(git_diff_basic_config, NULL); /* no "diff" UI options */
diff --git a/builtin/rev-list.c b/builtin/rev-list.c
index 718c6059c9..b250c515b1 100644
--- a/builtin/rev-list.c
+++ b/builtin/rev-list.c
@@ -277,6 +277,9 @@ int cmd_rev_list(int argc, const char **argv, const char *prefix)
int use_bitmap_index = 0;
const char *show_progress = NULL;
+ if (argc == 2 && !strcmp(argv[1], "-h"))
+ usage(rev_list_usage);
+
git_config(git_default_config, NULL);
init_revisions(&revs, prefix);
revs.abbrev = DEFAULT_ABBREV;
--
2.13.0-513-g1c0955652f
next prev parent reply other threads:[~2017-06-01 5:42 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-29 11:45 [Bug] setup_git_env called without repository Zero King
2017-05-29 13:01 ` Ævar Arnfjörð Bjarmason
2017-05-29 15:32 ` Jeff King
2017-05-30 5:09 ` [PATCH 0/8] consistent "-h" handling in builtins Jeff King
2017-05-30 5:11 ` [PATCH 1/8] am: handle "-h" argument earlier Jeff King
2017-05-30 5:43 ` Junio C Hamano
2017-05-30 5:12 ` [PATCH 2/8] credential: handle invalid arguments earlier Jeff King
2017-05-30 5:13 ` [PATCH 3/8] upload-archive: handle "-h" option early Jeff King
2017-05-30 5:15 ` [PATCH 4/8] remote-{ext,fd}: print usage message on invalid arguments Jeff King
2017-05-30 5:16 ` [PATCH 5/8] submodule--helper: show usage for "-h" Jeff King
2017-05-30 5:17 ` [PATCH 6/8] version: convert to parse-options Jeff King
2017-05-30 20:45 ` [PATCH 6.5?/8] version: move --build-options to a test helper Ævar Arnfjörð Bjarmason
2017-05-30 21:05 ` Jeff King
2017-05-31 15:27 ` Johannes Schindelin
2017-05-31 15:31 ` Jeff King
2017-05-31 15:46 ` Johannes Schindelin
2017-05-31 17:51 ` Ævar Arnfjörð Bjarmason
2017-05-31 21:06 ` Jeff King
2017-05-30 5:18 ` [PATCH 7/8] git: add hidden --list-builtins option Jeff King
2017-05-30 5:19 ` [PATCH 8/8] t0012: test "-h" with builtins Jeff King
2017-05-30 6:03 ` Junio C Hamano
2017-05-30 6:05 ` Jeff King
2017-05-30 6:08 ` Junio C Hamano
2017-05-30 6:15 ` Jeff King
2017-05-30 13:23 ` Junio C Hamano
2017-05-30 15:27 ` Jeff King
2017-05-30 15:44 ` Jeff King
2017-05-30 22:39 ` Junio C Hamano
2017-06-01 4:17 ` Junio C Hamano
2017-06-01 5:35 ` Jeff King
2017-06-01 5:42 ` Junio C Hamano [this message]
2017-06-01 5:54 ` Junio C Hamano
2017-06-01 6:25 ` Jeff King
2017-06-01 7:51 ` Junio C Hamano
2017-06-01 6:10 ` Jeff King
2017-06-13 23:08 ` Jonathan Nieder
2017-06-14 10:03 ` Jeff King
2017-05-30 5:52 ` [PATCH 0/8] consistent "-h" handling in builtins 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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqq7f0w6z7u.fsf@gitster.mtv.corp.google.com \
--to=gitster@pobox.com \
--cc=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=jrnieder@gmail.com \
--cc=l2dy@macports.org \
--cc=peff@peff.net \
/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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).