git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 4/4] Implement git commit and status as a builtin commands.

From
Björn Steinbrink <b.steinbrink@gmx.de>
Date
Nov 6, 2007, 17:08 UTC
Message-ID
<20071106170813.GA27100@atjola.homenet>
In-Reply-To
<1194367619.20020.9.camel@hinata.boston.redhat.com>
On 2007.11.06 11:46:59 -0500, Kristian Høgsberg wrote:
Show 36 quoted lines
> 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.

Hm, why? The user used only one of them. The error message does not say that you cannot pass the same one multiple times. And I don't think that passing the same boolean flag twice should be treated as an usage error either. There's no contradiction in wanting all files and, well, all files to be committed.

Sidenote: The "or mask" stuff in the option parser would probably
prevent you from catching "-a -a" anyway, because the flag becomes truly
boolean ;-)
Björn
Previous: Kristian HøgsbergNext: Pierre Habouzit
Message 13 of 24 in “Add testcase for ammending and fixing author in git commit.”
  1. 1/4 Add testcase for ammending and fixing author in git commit.Kristian Høgsberg, Nov 2, 2007
  2. 2/4 Remove unecessary hard-coding of EDITOR=':' VISUAL=':' in some test suites.Kristian Høgsberg, Nov 2, 2007
  3. 3/4 Export launch_editor() and make it accept ':' as a no-op editor.Kristian Høgsberg, Nov 2, 2007
  4. 4/4 Implement git commit and status as a builtin commands.Kristian Høgsberg, Nov 2, 2007
  5. Johannes SchindelinNov 3, 2007
  6. Kristian HøgsbergNov 8, 2007
  7. Björn SteinbrinkNov 3, 2007
  8. Kristian HøgsbergNov 5, 2007
  9. Björn SteinbrinkNov 5, 2007
  10. Johannes SchindelinNov 5, 2007
  11. Björn SteinbrinkNov 6, 2007
  12. Kristian HøgsbergNov 6, 2007
  13. Björn SteinbrinkNov 6, 2007
  14. Pierre HabouzitNov 6, 2007
  15. Johannes SixtNov 6, 2007
  16. Pierre HabouzitNov 6, 2007
  17. Andreas EricssonNov 6, 2007
  18. Kristian HøgsbergNov 6, 2007
  19. Andreas EricssonNov 2, 2007
  20. Kristian HøgsbergNov 2, 2007
  21. Junio C HamanoNov 2, 2007
  22. Junio C HamanoNov 2, 2007
  23. Kristian HøgsbergNov 2, 2007
  24. Junio C HamanoNov 2, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.