Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » EGit » Merge + Squash does not change MERGE_HEAD?
Merge + Squash does not change MERGE_HEAD? [message #993721] Tue, 25 December 2012 03:39 Go to next message
Tal Weiss is currently offline Tal Weiss
Messages: 4
Registered: October 2011
Junior Member
When merging using "Squash" and later committing, Git history does not show the branch as merged.
My procedure:
In Pydev Package Explorer, right click on the project in the Master branch.
Team - Merge
Select a local branch
In the merge options select Squash
Click on the Merge button

The merge happens in my workspace without a commit (so far so good).

I review the code, possibly modifying it slightly and commit.
Commit works, but the branch is not really merged.
In the history view (or git log --decorate --graph --oneline) I don't see the merge.
When I try to delete the branch it tells me that it has unmerged commits.

Am I using merge-squash wrong?






[Updated on: Tue, 25 December 2012 03:40]

Report message to a moderator

Re: Merge + Squash does not change MERGE_HEAD? [message #998380 is a reply to message #993721] Wed, 09 January 2013 17:08 Go to previous messageGo to next message
Matthias Sohn is currently offline Matthias Sohn
Messages: 491
Registered: July 2009
Senior Member
EGit doesn't support merge-squash yet, so it looks like you used some other git implementation here.
Click "About Eclipse > Installation Details" and check if you installed the features org.eclipse.egit and org.eclipse.jgit.
You are using something else.
Re: Merge + Squash does not change MERGE_HEAD? [message #998548 is a reply to message #998380] Thu, 10 January 2013 03:09 Go to previous messageGo to next message
Stefan Lay is currently offline Stefan Lay
Messages: 338
Registered: July 2009
Senior Member
Matthias, the community is working hard;-) Squash was implemented by Tomasz in August last year.

Tal, in my opinion merge-squash works as designed. Please have a look at the git docu (http://www.kernel.org/pub/software/scm/git/docs/git-merge.html):

"Produce the working tree and index state as if a real 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 top of the current branch whose effect is the same as merging another branch"

So, in a nutshell, merge-squash does not merge in the branch but only takes the changes introduced by the branch.
Re: Merge + Squash does not change MERGE_HEAD? [message #1067912 is a reply to message #998548] Thu, 11 July 2013 04:38 Go to previous message
Jochen Bleile is currently offline Jochen Bleile
Messages: 1
Registered: July 2013
Junior Member
I have some problems using the squash option during merge. In my understanding (when selecting the squash option) EGit should not commit the merge result automatically and the next commit should only have one parent. However, several times I experienced that EGit instead performed a normal merge (automatically commits the changes and the resulting commit has two parents). Even when I reset my branch and try again it is doing it the same way. I tried to figure out when EGit is doing it right and when not but I was not able to so far.

When using another tool (GitExtensions) it works always as expected even if EGit fails.

Does anyone else encounter this behaviour?
Previous Topic:Multi-threaded/Multiprocess Jgit use
Next Topic:GitServlet HowTo
Goto Forum:
  


Current Time: Mon Apr 21 00:51:55 EDT 2014

Powered by FUDForum. Page generated in 0.01563 seconds