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

Re: [PATCH] Documentation: merging a tag is a special case

From
Junio C Hamano <gitster@pobox.com>
Date
Mar 20, 2013, 19:07 UTC
Message-ID
<7vboadevpk.fsf@alter.siamese.dyndns.org>
In-Reply-To
<1363802033-26868-1-git-send-email-ydroneaud@opteya.com>
Yann Droneaud <ydroneaud@opteya.com> writes:
Show 31 quoted lines
> When asking Git to merge a tag (such as a signed tag or annotated tag),
> it will always create a merge commit even if fast-forward was possible.
> It's like having --no-ff present on the command line.
>
> It's a difference from the default behavior described in git-merge.txt.
> It should be documented as an exception of "FAST-FORWARD MERGE" section
> and "--ff" option description.
>
> Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
> ---
>  Documentation/git-merge.txt     | 9 +++++++++
>  Documentation/merge-options.txt | 2 +-
>  2 files changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/git-merge.txt b/Documentation/git-merge.txt
> index c852a26..84bc873 100644
> --- a/Documentation/git-merge.txt
> +++ b/Documentation/git-merge.txt
> @@ -170,6 +170,15 @@ happens:
>  If you tried a merge which resulted in complex conflicts and
>  want to start over, you can recover with `git merge --abort`.
>  
> +MERGING TAG
> +-----------
> +
> +When merging a tag (annotated or signed), Git will create a merge commit
> +even if a fast-forward merge is possible (see above).
> +The commit message template will be created from the tag message.
> +Additionally, the signature check will be reported as a comment
> +if the tag was signed. See also linkgit:git-tag[1].
> +

It would make it more helpful to readers to describe how _not_ to create such a merge commit if it is unwanted, and how the request to merge a tag interacts with --ff-only option.

Show 13 quoted lines
>  HOW CONFLICTS ARE PRESENTED
>  ---------------------------
>  
> diff --git a/Documentation/merge-options.txt b/Documentation/merge-options.txt
> index 0bcbe0a..70d1ec0 100644
> --- a/Documentation/merge-options.txt
> +++ b/Documentation/merge-options.txt
> @@ -26,7 +26,7 @@ set to `no` at the beginning of them.
>  --ff::
>  	When the merge resolves as a fast-forward, only update the branch
>  	pointer, without creating a merge commit.  This is the default
> -	behavior.
> +	behavior (except when merging a tag).

With this update, the reader will be left wondering what would be the default when she asks Git to merge a tag, no?

>  --no-ff::
>  	Create a merge commit even when the merge resolves as a
Previous: Jonathan NiederNext: Junio C Hamano
Message 14 of 53 in “git merge <tag> behavior”
  1. Yann DroneaudMar 19, 2013
  2. Junio C HamanoMar 19, 2013
  3. Re* git merge <tag> behaviorJunio C Hamano, Mar 19, 2013
  4. 0/3 Merging an annotated tag objectJunio C Hamano, Apr 1, 2013
  5. 1/3 merge: a random object may not necssarily be a commitJunio C Hamano, Apr 1, 2013
  6. Yann DroneaudApr 1, 2013
  7. Jeff KingApr 2, 2013
  8. Junio C HamanoApr 2, 2013
  9. Jeff KingApr 2, 2013
  10. 2/3 t6200: use test_config/test_unconfigJunio C Hamano, Apr 1, 2013
  11. 3/3 t6200: test message for merging of an annotated tagJunio C Hamano, Apr 1, 2013
  12. Documentation: merging a tag is a special caseYann Droneaud, Mar 20, 2013
  13. Jonathan NiederMar 20, 2013
  14. Junio C HamanoMar 20, 2013
  15. Junio C HamanoMar 21, 2013
  16. Jonathan NiederMar 21, 2013
  17. Junio C HamanoMar 21, 2013
  18. Jonathan NiederMar 21, 2013
  19. Yann DroneaudMar 21, 2013
  20. Documentation: merging a tag is a special caseYann Droneaud, Mar 21, 2013
  21. Jonathan NiederMar 21, 2013
  22. Yann DroneaudMar 20, 2013
  23. Yann DroneaudMar 20, 2013
  24. Junio C HamanoMar 20, 2013
  25. Max NanasyMar 21, 2013
  26. Yann DroneaudMar 22, 2013
  27. t7600: test merge configuration overrideYann Droneaud, Mar 22, 2013
  28. Junio C HamanoMar 22, 2013
  29. 00/15 Use test_configYann Droneaud, Mar 24, 2013
  30. 01/15 t4018: remove test_config implementationYann Droneaud, Mar 24, 2013
  31. 02/15 t7810: remove test_config implementationYann Droneaud, Mar 24, 2013
  32. 03/15 t7811: remove test_config implementationYann Droneaud, Mar 24, 2013
  33. 04/15 t3400: use test_config to set/unset git config variablesYann Droneaud, Mar 24, 2013
  34. 05/15 t4304: use test_config to set/unset git config variablesYann Droneaud, Mar 24, 2013
  35. 06/15 t4034: use test_config/test_unconfig to set/unset git config variablesYann Droneaud, Mar 24, 2013
  36. 07/15 t4202: use test_config/test_unconfig to set/unset git config variablesYann Droneaud, Mar 24, 2013
  37. 08/15 t5520: use test_config to set/unset git config variablesYann Droneaud, Mar 24, 2013
  38. 09/15 t5541: use test_config to set/unset git config variablesYann Droneaud, Mar 24, 2013
  39. 10/15 t7500: use test_config to set/unset git config variablesYann Droneaud, Mar 24, 2013
  40. 11/15 t7502: use test_config to set/unset git config variablesYann Droneaud, Mar 24, 2013
  41. 12/15 t7508: use test_config to set/unset git config variablesYann Droneaud, Mar 24, 2013
  42. 13/15 t7600: use test_config to set/unset git config variablesYann Droneaud, Mar 24, 2013
  43. 14/15 t9500: use test_config to set/unset git config variablesYann Droneaud, Mar 24, 2013
  44. 15/15 t7502: remove clear_configYann Droneaud, Mar 24, 2013
  45. Junio C HamanoMar 27, 2013
  46. Junio C HamanoMar 27, 2013
  47. Yann DroneaudMar 27, 2013
  48. Junio C HamanoMar 22, 2013
  49. t7600: merge tag shoud create a merge commity@quest-ce.net, Mar 22, 2013
  50. t7600: merge tag shoud create a merge commity@quest-ce.net, Mar 22, 2013
  51. Junio C HamanoMar 22, 2013
  52. Yann DroneaudMar 22, 2013
  53. Jeff KingMar 22, 2013

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.