From: Michael J Gruber <git@drmicha.warpmail.net>
To: Cory Sharp <cory.sharp@gmail.com>
Cc: Junio C Hamano <gitster@pobox.com>, git@vger.kernel.org
Subject: Re: [Q] merge squash unexpected conflicts
Date: Thu, 14 May 2009 14:17:35 +0200 [thread overview]
Message-ID: <4A0C0BDF.9020803@drmicha.warpmail.net> (raw)
In-Reply-To: <bb9d69200905132057u60adc2f8vb9ba9a35791f72ac@mail.gmail.com>
Cory Sharp venit, vidit, dixit 14.05.2009 05:57:
> On Wed, May 13, 2009 at 8:21 PM, Junio C Hamano <gitster@pobox.com> wrote:
>> Cory Sharp <cory.sharp@gmail.com> writes:
>>
>>> Am I doing something a little wrong or unexpected? Is there a way
>>> around this squash conflict behavior? This doesn't seem to happen
>>> with plain merge without squash.
>>
>> Of course. That's the whole point of recording a merge as a merge.
>>
>
> $ git help merge
>
> --squash
> Produce the working tree and index state as if a real merge
> happened. ... This allows you to create a
> single commit on top of the current branch whose effect is
> the same as merging another branch.
The problem is simply in the "...". You cut out the vital part:
but do not actually make a commit or
move the `HEAD`, nor record `$GIT_DIR/MERGE_HEAD` to
cause the next `git commit` command to create a merge
commit.
See? Tree: yes, index: yes, merge info: no.
Git does perform a (tree) merge with --squash, but records the resulting
tree as an ordinary non-merge commit (with a single parent).
I'm not sure whether the statement about the index is completely
correct, though. During a merge the index records info about the merge
(stages :1: etc.) but that as missing with --squash. Only the resulting
tree is added to the index. How about the below?
Michael
diff --git a/Documentation/merge-options.txt
b/Documentation/merge-options.txt
index 637b53f..adadf8e 100644
--- a/Documentation/merge-options.txt
+++ b/Documentation/merge-options.txt
@@ -39,7 +39,8 @@
--squash::
Produce the working tree and index state as if a real
- merge happened, but do not actually make a commit or
+ merge happened (except for the merge information),
+ but do not actually make a commit or
move the `HEAD`, nor record `$GIT_DIR/MERGE_HEAD` to
cause the next `git commit` command to create a merge
commit. This allows you to create a single commit on
next prev parent reply other threads:[~2009-05-14 12:17 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <bb9d69200905131706m61b0dda1xc347ca2e719ec142@mail.gmail.com>
2009-05-14 2:42 ` [Q] merge squash unexpected conflicts Cory Sharp
2009-05-14 3:21 ` Junio C Hamano
2009-05-14 3:57 ` Cory Sharp
2009-05-14 4:42 ` Junio C Hamano
2009-05-14 6:34 ` Cory Sharp
2009-05-14 6:42 ` Junio C Hamano
2009-05-14 6:54 ` Cory Sharp
2009-05-14 7:01 ` Michael Radziej
2009-05-14 18:25 ` Cory Sharp
2009-05-14 12:17 ` Michael J Gruber [this message]
2009-05-14 14:47 ` Cory Sharp
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=4A0C0BDF.9020803@drmicha.warpmail.net \
--to=git@drmicha.warpmail.net \
--cc=cory.sharp@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.