Tuesday, June 14, 2011

generally, you push and pull, but sometimes, git fights back!

This was my last week of finals, so I expected to speed up, but things does not always work out as you expect, are they?

The problem started when I need to merge the upstream(main ScummVM repository) changes. Updating the master branch was pretty easy since I did not do any changes, only a fast-forward was enough but when it come to rebasing my working branch, things get complicated.

I did not realize that until my mentor Johannes Schickel warned me about it. There was a merge commit that merges my working branch with itself. It took some time before I find out what got wrong, and it was indeed the rebase. I am still not sure how it happened, but when I rebased, git didn't remove the old commits, yet still added new rebased commits to history. There was double commits that were identical, except parent commits, and git merged them on the branch they are.

I used interactive rebase and manually removed old commits, also used a force push to fix history on github. I know force push is unpleasant but in the end, everything sorted out as they should.

No comments: