diff options
author | Junio C Hamano <gitster@pobox.com> | 2017-06-01 07:38:16 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-06-05 05:39:59 +0300 |
commit | 5a88f97cff0f269f8b2069b17c9da05ee66c98bb (patch) | |
tree | c7cb309f1167013a5d292be28c6d5db72b0bbb66 /builtin/diff-tree.c | |
parent | f0994fa85dfcbd9854686d7b6de3b05b7952f41c (diff) |
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. Strictly speaking, they may not
need a repository only for parsing "-h", but it is a good discipline
to future-proof codepath to ensure that setup_revisions() is called
after we know that a repository is there.
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>
Diffstat (limited to 'builtin/diff-tree.c')
-rw-r--r-- | builtin/diff-tree.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/builtin/diff-tree.c b/builtin/diff-tree.c index 326f88b657..773cc254b5 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 */ |