From: Shawn O. Pearce Date: Mon, 22 Oct 2007 05:47:41 GMT Subject: Re: [PATCH] "git help" and "git help -a" shouldn't exit(1) unless they error Message-ID: <20071022054741.GP14735@spearce.org> In-Reply-To: <20071021214744.GH16291@srparish.net> Scott R Parish wrote: > diff --git a/help.c b/help.c > index 1cd33ec..b0d2dd4 100644 > --- a/help.c > +++ b/help.c > @@ -204,14 +204,14 @@ int cmd_help(int argc, const char **argv, const char *prefix) > if (!help_cmd) { > printf("usage: %s\n\n", git_usage_string); > list_common_cmds_help(); > - exit(1); > + exit(0); > } Although it seems simple on the surface this patch breaks the test suite: $ make test make -C t/ all make[1]: Entering directory `/home/spearce/mygit/t' *** t0000-basic.sh *** You do not seem to have built git yet. The issue here is t0000-basic.sh runs "../git" and tests that the exit status is 1. If it isn't (the patch above makes it 0) we just abort the test suite entirely. I think its correct for "git help" to exit 0, and also for "git help checkout" or "git checkout --help" to exit 0, but "git" by itself with no subcommand should exit with an error, it requires a subcommand to continue. So some sort of change is needed in git.c to handle this special no subcommand condition. -- Shawn.