From: Cory Sharp Date: Thu, 14 May 2009 14:47:40 GMT Subject: Re: [Q] merge squash unexpected conflicts Message-ID: In-Reply-To: <4A0C0BDF.9020803@drmicha.warpmail.net> On Thu, May 14, 2009 at 5:17 AM, Michael J Gruber wrote: > Cory Sharp venit, vidit, dixit 14.05.2009 05:57: >> On Wed, May 13, 2009 at 8:21 PM, Junio C Hamano wrote: >>> Cory Sharp 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? Now I see, thanks for the help. The elided part, at the time I elided it, did not make me understand that merge info was not written, particularly when surrounded by its original accompanying text. Thanks again, Cory