Hi, On Sat, 22 Mar 2008, Jörg Sommer wrote: > The current version of git-rebase--interactive shows the user the > commits coming from a merge. > > M---A---B > \ \ > o---o---+---o branch > > Rebasing branch on M with preserve merges gives the commits A and B. But > if you mark them for editing or remove them the rebase fails. You must > keep them as they are. It's useless to bother the user with these > commits and might lead to mistakes. I don't understand. Rebasing with "rebase --onto <something else> M" _should_ show A and B. Besides, I think that this would break exactly that case: > @@ -523,7 +525,7 @@ do > SHORTONTO=$(git rev-parse --short $ONTO) > git rev-list $MERGES_OPTION --pretty=oneline --abbrev-commit \ > --abbrev=7 --reverse --left-right --cherry-pick \ > - $UPSTREAM...$HEAD | \ > + --first-parent $UPSTREAM...$HEAD | \ If I am not mistaken, you now mark A and B to be _not_ in the list of commits all of a sudden, even if A and B _are_ reachable from "branch", but not from "M". So I think this is exactly one of the cases which made me unsure if your expectation was always right. IOW I think this is _very_ easy to get wrong, and needs careful thought. Ciao, Dscho