Re: [PATCH 4/4] Implement git commit and status as a builtin commands.
- From
Kristian Høgsberg <krh@redhat.com>
- Date
- Nov 6, 2007, 16:46 UTC
- Message-ID
- <1194367619.20020.9.camel@hinata.boston.redhat.com>
- In-Reply-To
- <20071106065941.GA6423@atjola.homenet>
On Tue, 2007-11-06 at 07:59 +0100, Björn Steinbrink wrote: ...
Show 20 quoted lines
> Note though, that Kristian had a similar check at the end of his email,
> that included "only" (but lacked the bool conversion). The original
> reason why I thought that it would be better was that for example
> "git commit --all --only foo" didn't care about "only" at all. But that
> actually was because the --all + paths usage check was broken. So the
> fixed version actually refuses to use accept that, but with a (IMHO) not
> so good error message:
>
> $ git commit -a -o file
> Paths with -a does not make sense.
>
> Given that some people are used to just pass -a all the time, they might
> just automatically pass it together with -o. And I think that we
> actually want to tell them that -a + -o makes no sense instead. Just
> like we do for -a + -i, which is kind of the complementary usage error.
>
> So I'd go for a correct version of Kristian's suggestion:
>
> if (!!also + !!only + !!all + !!interactive > 1)
> die("Only one of --include/--only/--all/--interactive can be used.");Good points, I will use that in the next version of the patch. Just a note about the !! idiom (which I can't stand, fwiw): my version just added the variables, which were all integers, initialized to zero and incremented by the option parser when it sees the corresponding option. So what I had would work too, with the extra check that:
$ git commit -a -a
etc would give the error
Only one of --include/--only/--all/--interactive can be used.
which is acutally accurate.
cheers, Kristian