rebase converts merge commits

5 messages, 3 authors, 2016-06-15 · open the first message on its own page

rebase converts merge commits

From: Sébastien Barthélemy <hidden>
Date: 2016-06-15 22:49:46

Hello,

first of all, thank you for git this is a wonderful tool.

Yet, I have a problem while trying to rebase a bit of history which contains
merge commits.

I'm not sure whether I misuse something or whether this is a know (but
not documented?) limitation.

Here is more context.

I have the following history

* commit e1adb4bcd07372024689c697c56249ca6c044009
|
|     fixed  maintainer field
|
* commit 6aca4f53e8b7647df96dcd2caacde5883f9c67c5
|
|     updated changelog for release 2.9.9-0ubuntu1
|
* commit 96d69d992afae69a8caba07ab9b5b6e5ed7d35d8
|
|     updated lintian warning override
|
*   commit 53171e21222b6a7fcb25620b1c30e427b9ada6a6
|\  Merge: 2d58bfe 4f3385d
| |
| |     merged release 2.9.9
| |
| * commit 4f3385dd9cf129cb0d65c9fb3895fe61a03b8b59
| |
| |     upstream 2.9.9 (developer) release
| |
* | commit 2d58bfed1cc234b5a76bde8216298a72db29aacc
| |
| |     updated maintainer field
| |
* | commit 05b4de27b993dde0cc779364fa24223f29e66b0e
| |
| |     changelog for 2.9.8-0ubuntu5
| |
...


commit 2d58bfe introduced a trivial error that got fixed in commit e1adb4b.

I would like to manipulate the history to get these two commits subsequent
(or even merge them). Eventually I'd like to get this history

* commit 6aca4f53e8b7647df96dcd2caacde5883f9c67c5'
|
|     updated changelog for release 2.9.9-0ubuntu1
|
* commit 96d69d992afae69a8caba07ab9b5b6e5ed7d35d8'
|
|     updated lintian warning override
|
*   commit 53171e21222b6a7fcb25620b1c30e427b9ada6a6'
|\  Merge: e1adb4' 4f3385d
| |
| |     merged release 2.9.9
| |
| * commit 4f3385dd9cf129cb0d65c9fb3895fe61a03b8b59
| |
| |     upstream 2.9.9 (developer) release
| |
* | commit e1adb4bcd07372024689c697c56249ca6c044009'
| |
| |     fixed  maintainer field
| |
* | commit 2d58bfed1cc234b5a76bde8216298a72db29aacc
| |
| |     updated maintainer field
| |
* | commit 05b4de27b993dde0cc779364fa24223f29e66b0e
| |
| |     changelog for 2.9.8-0ubuntu5
| |
...

I tried with rebase -i, but it converts the merge commit into a normal commit.
Moreover, it asks me to resolve the merge conflict again.

I think this is a limitation of rebase, but I haven't read it stated anywhere,
so here I am, asking for a confirmation.

By the way, if there is a way to do what I want, please tell me.

I'm using git version 1.7.0.4.

Cheers

-- 
Sebastian

Re: rebase converts merge commits

From: Matthijs Kooijman <hidden>
Date: 2016-06-15 22:49:46

Hi Sébastien,
Yet, I have a problem while trying to rebase a bit of history which contains
merge commits.
Have you tried the --preserve-merges option to rebase?

Gr.

Matthijs

Re: rebase converts merge commits

From: Sébastien Barthélemy <hidden>
Date: 2016-06-15 22:49:46

Hi Matthijs,

2010/10/12 Matthijs Kooijman [off-list ref]:
Have you tried the --preserve-merges option to rebase?
No, I didn't know about this option. Thank you for the tip.

I just tried, and it does not work either. The merge commit is
preserved, but the commit I'm push back in time is lost.

There is a warning against this kind behaviour when using both
--interactive and rebase.

Thanks,
-- 
Sebastian

Re: rebase converts merge commits

From: Kevin Ballard <hidden>
Date: 2016-06-15 22:49:46

On Oct 12, 2010, at 7:55 AM, Sébastien Barthélemy wrote:
By the way, if there is a way to do what I want, please tell me.
Your history is short enough that if you can't get rebase to do what you want, you could always do it by hand. Create a temp branch to work on based on the bad commit, cherry-pick the good commit with --no-commit, then amend the bad commit. Then just cherry-pick each subsequent commit until you get to the merge. Re-perform the merge. Then just continue to cherry-pick subsequent commits. It's not ideal, but it should work.

-Kevin Ballard

Re: rebase converts merge commits

From: Sébastien Barthélemy <hidden>
Date: 2016-06-15 22:49:48

2010/10/12 Kevin Ballard [off-list ref]:
On Oct 12, 2010, at 7:55 AM, Sébastien Barthélemy wrote:
quoted
By the way, if there is a way to do what I want, please tell me.
Your history is short enough that if you can't get rebase to do what you want, you could always do it by hand.
Sure. Thank you for making it clear.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help