From: Yann Droneaud <ydroneaud@opteya.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Yann Droneaud <ydroneaud@opteya.com>,
Jonathan Nieder <jrnieder@gmail.com>, Git <git@vger.kernel.org>
Subject: [PATCH v2] Documentation: merging a tag is a special case
Date: Thu, 21 Mar 2013 22:57:48 +0100 [thread overview]
Message-ID: <1363903068-15905-1-git-send-email-ydroneaud@opteya.com> (raw)
In-Reply-To: <1363902468-14764-1-git-send-email-ydroneaud@opteya.com>
From: Junio C Hamano <gitster@pobox.com>
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.
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Reviewed-by: Yann Droneaud <ydroneaud@opteya.com>
---
Documentation/git-merge.txt | 24 ++++++++++++++++++++++++
Documentation/merge-options.txt | 3 ++-
2 files changed, 26 insertions(+), 1 deletion(-)
diff --git a/Documentation/git-merge.txt b/Documentation/git-merge.txt
index c852a26..42391f2 100644
--- a/Documentation/git-merge.txt
+++ b/Documentation/git-merge.txt
@@ -170,6 +170,30 @@ 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 an annotated (and possibly signed) tag, Git always
+creates a merge commit even if a fast-forward merge is possible, and
+the commit message template is prepared with the tag message.
+Additionally, if the tag is signed, the signature check is reported
+as a comment in the message template. See also linkgit:git-tag[1].
+
+When you want to just integrate with the work leading to the commit
+that happens to be tagged, e.g. synchronizing with an upstream
+release point, you may not want to make an unnecessary merge commit.
+
+In such a case, you can "unwrap" the tag yourself before feeding it
+to `git merge`, or pass `--ff-only` when you do not have any work on
+your own. e.g.
+
+---
+git fetch origin
+git merge v1.2.3^0
+git merge --ff-only v1.2.3
+---
+
+
HOW CONFLICTS ARE PRESENTED
---------------------------
diff --git a/Documentation/merge-options.txt b/Documentation/merge-options.txt
index 0bcbe0a..34a8445 100644
--- a/Documentation/merge-options.txt
+++ b/Documentation/merge-options.txt
@@ -30,7 +30,8 @@ set to `no` at the beginning of them.
--no-ff::
Create a merge commit even when the merge resolves as a
- fast-forward.
+ fast-forward. This is the default behaviour when merging an
+ annotated (and possibly signed) tag.
--ff-only::
Refuse to merge and exit with a non-zero status unless the
--
1.7.11.7
next prev parent reply other threads:[~2013-03-21 21:58 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-19 14:55 git merge <tag> behavior Yann Droneaud
2013-03-19 16:19 ` Junio C Hamano
2013-03-19 17:54 ` Re* " Junio C Hamano
2013-04-01 19:57 ` [PATCH 0/3] Merging an annotated tag object Junio C Hamano
2013-04-01 19:57 ` [PATCH 1/3] merge: a random object may not necssarily be a commit Junio C Hamano
2013-04-01 22:51 ` Yann Droneaud
2013-04-02 5:30 ` Jeff King
2013-04-02 15:02 ` Junio C Hamano
2013-04-02 15:03 ` Jeff King
2013-04-01 19:57 ` [PATCH 2/3] t6200: use test_config/test_unconfig Junio C Hamano
2013-04-01 19:57 ` [PATCH 3/3] t6200: test message for merging of an annotated tag Junio C Hamano
2013-03-20 17:53 ` [PATCH] Documentation: merging a tag is a special case Yann Droneaud
2013-03-20 18:54 ` Jonathan Nieder
2013-03-20 19:07 ` Junio C Hamano
2013-03-21 19:50 ` Junio C Hamano
2013-03-21 19:56 ` Jonathan Nieder
2013-03-21 20:10 ` Junio C Hamano
2013-03-21 20:39 ` Jonathan Nieder
2013-03-21 21:47 ` Yann Droneaud
2013-03-21 21:57 ` Yann Droneaud [this message]
2013-03-21 22:41 ` [PATCH v2] " Jonathan Nieder
2013-03-20 18:04 ` git merge <tag> behavior Yann Droneaud
2013-03-20 18:12 ` Yann Droneaud
2013-03-20 18:46 ` Junio C Hamano
2013-03-21 20:31 ` Max Nanasy
2013-03-22 9:16 ` Yann Droneaud
2013-03-22 10:09 ` [PATCH] t7600: test merge configuration override Yann Droneaud
2013-03-22 14:47 ` Junio C Hamano
2013-03-24 21:05 ` [PATCH 00/15] Use test_config Yann Droneaud
2013-03-24 21:06 ` [PATCH 01/15] t4018: remove test_config implementation Yann Droneaud
2013-03-24 21:06 ` [PATCH 02/15] t7810: " Yann Droneaud
2013-03-24 21:06 ` [PATCH 03/15] t7811: " Yann Droneaud
2013-03-24 21:06 ` [PATCH 04/15] t3400: use test_config to set/unset git config variables Yann Droneaud
2013-03-24 21:06 ` [PATCH 05/15] t4304: " Yann Droneaud
2013-03-24 21:06 ` [PATCH 06/15] t4034: use test_config/test_unconfig " Yann Droneaud
2013-03-24 21:06 ` [PATCH 07/15] t4202: " Yann Droneaud
2013-03-24 21:06 ` [PATCH 08/15] t5520: use test_config " Yann Droneaud
2013-03-24 21:06 ` [PATCH 09/15] t5541: " Yann Droneaud
2013-03-24 21:06 ` [PATCH 10/15] t7500: " Yann Droneaud
2013-03-24 21:06 ` [PATCH 11/15] t7502: " Yann Droneaud
2013-03-24 21:06 ` [PATCH 12/15] t7508: " Yann Droneaud
2013-03-24 21:06 ` [PATCH 13/15] t7600: " Yann Droneaud
2013-03-24 21:06 ` [PATCH 14/15] t9500: " Yann Droneaud
2013-03-24 21:06 ` [PATCH 15/15] t7502: remove clear_config Yann Droneaud
2013-03-27 15:04 ` Junio C Hamano
2013-03-27 15:05 ` [PATCH 00/15] Use test_config Junio C Hamano
2013-03-27 16:19 ` Yann Droneaud
2013-03-22 15:23 ` git merge <tag> behavior Junio C Hamano
2013-03-22 10:57 ` [PATCH] t7600: merge tag shoud create a merge commit y
2013-03-22 14:48 ` Junio C Hamano
2013-03-22 14:56 ` Yann Droneaud
2013-03-22 15:05 ` Jeff King
2013-03-22 10:57 ` y
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1363903068-15905-1-git-send-email-ydroneaud@opteya.com \
--to=ydroneaud@opteya.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jrnieder@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).