On Tue, 2007-11-06 at 07:59 +0100, Björn Steinbrink wrote: ... > 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 - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html