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

Re: [PATCH v2 2/3] read-tree -m: make error message for merging 0 trees less smart aleck

From
Junio C Hamano <gitster@pobox.com>
Date
May 11, 2017, 03:46 UTC
Message-ID
<xmqq60h8cay3.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<20170503210726.24121-2-jn.avila@free.fr>
Jean-Noel Avila <jn.avila@free.fr> writes:
Show 9 quoted lines
> "git read-tree -m" requires a tree argument to name the tree to be
> merged in.  Git uses a cutesy error message to say so and why:
>
>     $ git read-tree -m
>     warning: read-tree: emptying the index with no arguments is
>     deprecated; use --empty
>     fatal: just how do you expect me to merge 0 trees?
>     $ git read-tree -m --empty
>     fatal: just how do you expect me to merge 0 trees?

This shows another issue. The "emptying ... is deprecated" message shouldn't be given when -m is present.

I am not saying that that needs to be fixed by you and/or as a part of this patch. Just something I noticed while reviewing the patch.

Show 10 quoted lines
>  Merging
>  -------
> -If `-m` is specified, 'git read-tree' can perform 3 kinds of
> -merge, a single tree merge if only 1 tree is given, a
> -fast-forward merge with 2 trees, or a 3-way merge if 3 trees are
> -provided.
> +If `-m` is specified, at least one tree must be given on the command
> +line. 'git read-tree' can perform 3 kinds of merge, a single tree
> +merge if only 1 tree is given, a fast-forward merge with 2 trees, or a
> +3-way merge if 3 trees are provided.

It may not incorrect per-se, but the existing enumeration already say 1, 2 and 3 are the valid choices, so "at least one" may be redundant.

One incorrectness that needs to be changed is "if 3 trees are provided"; it is "if 3 or more trees". Again, not the topic of your change, but this one you may want to address while you are at it.

Show 5 quoted lines
>  	if (opts.merge) {
> -		if (stage < 2)
> -			die("just how do you expect me to merge %d trees?", stage-1);
>  		switch (stage - 1) {
> +		case 0:

Could "stage" be 0 (or negative) when we come here? If so, this rewrite may no longer diagnose the error correctly in such a case.

	... goes and looks ...

I think it begins with either 0 or 1 and then only counts up, so we should be safe. Rolling it in the switch() like this patch does makes it easier to follow what is going on, I think.

Show 5 quoted lines
> +			die("you must specify at least one tree to merge");
> +			break;
>  		case 1:
>  			opts.fn = opts.prefix ? bind_merge : oneway_merge;
>  			break;
Thanks.
Previous: Jean-Noel AvilaNext: Junio C Hamano
Message 15 of 41 in “usability: don't ask questions if no reply is required”
  1. 1/4 usability: don't ask questions if no reply is requiredJean-Noel Avila, May 3, 2017
  2. 2/4 usability: fix am and checkout for nevermind questionsJean-Noel Avila, May 3, 2017
  3. Jonathan NiederMay 3, 2017
  4. Jean-Noël AVILAMay 3, 2017
  5. 3/4 read-tree.c: rework UI when merging no treesJean-Noel Avila, May 3, 2017
  6. Jonathan NiederMay 3, 2017
  7. Jean-Noël AVILAMay 3, 2017
  8. 4/4 git-filter-branch: be assertative on dying messageJean-Noel Avila, May 3, 2017
  9. Jonathan NiederMay 3, 2017
  10. Jonathan NiederMay 3, 2017
  11. Stefan BellerMay 3, 2017
  12. Jean-Noël AVILAMay 3, 2017
  13. 1/3 usability: don't ask questions if no reply is requiredJean-Noel Avila, May 3, 2017
  14. 2/3 read-tree -m: make error message for merging 0 trees less smart aleckJean-Noel Avila, May 3, 2017
  15. Junio C HamanoMay 11, 2017
  16. read-tree: "read-tree -m --empty" does not make senseJunio C Hamano, May 11, 2017
  17. 3/3 git-filter-branch: make the error msg when missing branch more openJean-Noel Avila, May 3, 2017
  18. Junio C HamanoMay 11, 2017
  19. Kerry, RichardMay 4, 2017
  20. Ævar Arnfjörð BjarmasonMay 4, 2017
  21. Kerry, RichardMay 4, 2017
  22. Jean-Noël AVILAMay 9, 2017
  23. Ævar Arnfjörð BjarmasonMay 9, 2017
  24. Jean-Noël AVILAMay 4, 2017
  25. Junio C HamanoMay 11, 2017
  26. Kerry, RichardMay 11, 2017
  27. Konstantin KhomoutovMay 11, 2017
  28. Ævar Arnfjörð BjarmasonMay 11, 2017
  29. 1/3 usability: don't ask questions if no reply is requiredJean-Noel Avila, May 11, 2017
  30. 2/3 read-tree -m: make error message for merging 0 trees less smart aleckJean-Noel Avila, May 11, 2017
  31. Jonathan NiederMay 11, 2017
  32. Junio C HamanoMay 12, 2017
  33. Jean-Noël AVILAMay 12, 2017
  34. 3/3 git-filter-branch:Jean-Noel Avila, May 11, 2017
  35. Junio C HamanoMay 12, 2017
  36. 1/3 usability: don't ask questions if no reply is requiredJean-Noel Avila, May 12, 2017
  37. 2/3 read-tree -m: make error message for merging 0 trees less smart aleckJean-Noel Avila, May 12, 2017
  38. 3/3 git-filter-branch: be more direct in an error messageJean-Noel Avila, May 12, 2017
  39. Junio C HamanoMay 12, 2017
  40. Johannes SixtMay 13, 2017
  41. Junio C HamanoMay 15, 2017

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.