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

Re: [PATCHv2 1/2] merge: Add '--continue' option as a synonym for 'git commit'

From
Jeff King <peff@peff.net>
Date
Dec 13, 2016, 11:59 UTC
Message-ID
<20161213115931.tz7ce3z2meaxydbh@sigill.intra.peff.net>
In-Reply-To
<20161213084859.13426-1-judge.packham@gmail.com>
On Tue, Dec 13, 2016 at 09:48:58PM +1300, Chris Packham wrote:
Show 7 quoted lines
> +	if (continue_current_merge) {
> +		int nargc = 1;
> +		const char *nargv[] = {"commit", NULL};
> +
> +		if (argc)
> +			usage_msg_opt("--continue expects no arguments",
> +			      builtin_merge_usage, builtin_merge_options);
This checks that we don't have:
  git merge --continue foobar
but still allows:
  git merge --continue --some-option
because parse_options() decrements argc.

It would be insane to check individually which options might have been set. But I wonder if we could do something like:

  int orig_argc = argc;
  ...
  argc = parse_options(argc, argv, ...);
  if (continue_current_merge) {
	if (orig_argc != 1) /* maybe 2, to account for argv[0] ? */
		usage_msg_opt("--continue expects no arguments", ...);
  }

That gets trickier if there ever is an option that's OK to use with --continue. We might want to forward along "--quiet", for example. On the other hand, we silently ignore it now, so maybe it is better to complain and then let --quiet get added later if somebody cares.

Whatever we do here, I think "--abort" should get the same treatment (probably as a separate patch).

Show 11 quoted lines
> diff --git a/t/t7600-merge.sh b/t/t7600-merge.sh
> index 85248a14b..44b34ef3a 100755
> --- a/t/t7600-merge.sh
> +++ b/t/t7600-merge.sh
> @@ -154,6 +154,7 @@ test_expect_success 'test option parsing' '
>  	test_must_fail git merge -s foobar c1 &&
>  	test_must_fail git merge -s=foobar c1 &&
>  	test_must_fail git merge -m &&
> +	test_must_fail git merge --continue foobar &&
>  	test_must_fail git merge
>  '

Your tests look good, though obviously if you check for options above, that should be covered in this test.

-Peff
Previous: Chris PackhamNext: Junio C Hamano
Message 14 of 26 in “Any interest in 'git merge --continue' as a command”
  1. Chris PackhamDec 9, 2016
  2. Jeff KingDec 9, 2016
  3. Jacob KellerDec 9, 2016
  4. Junio C HamanoDec 9, 2016
  5. Chris PackhamDec 10, 2016
  6. Jeff KingDec 10, 2016
  7. Jacob KellerDec 10, 2016
  8. merge: Add '--continue' option as a synonym for 'git commit'Chris Packham, Dec 12, 2016
  9. Markus HitterDec 12, 2016
  10. Chris PackhamDec 13, 2016
  11. Jeff KingDec 12, 2016
  12. 1/2 merge: Add '--continue' option as a synonym for 'git commit'Chris Packham, Dec 13, 2016
  13. 2/2 completion: add --continue option for mergeChris Packham, Dec 13, 2016
  14. Jeff KingDec 13, 2016
  15. Junio C HamanoDec 13, 2016
  16. 1/3 merge: Add '--continue' option as a synonym for 'git commit'Chris Packham, Dec 14, 2016
  17. 2/3 completion: add --continue option for mergeChris Packham, Dec 14, 2016
  18. 3/3 merge: Ensure '--abort' option takes no argumentsChris Packham, Dec 14, 2016
  19. Jeff KingDec 14, 2016
  20. Junio C HamanoDec 14, 2016
  21. Junio C HamanoDec 14, 2016
  22. Chris PackhamDec 15, 2016
  23. Junio C HamanoDec 15, 2016
  24. Jeff KingDec 15, 2016
  25. Jeff KingDec 10, 2016
  26. Junio C HamanoDec 10, 2016

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.