From: Stephan Beyer Date: Wed, 16 Jul 2008 21:51:11 GMT Subject: Re: [PATCH] rebase-i: keep old parents when preserving merges Message-ID: <20080716215111.GB18558@leksak.fem-net> In-Reply-To: <7vd4ldpl3k.fsf@gitster.siamese.dyndns.org> Hi, Junio C Hamano wrote: > Stephan Beyer writes: > > ... Based on the discussion thread, here is a rewrite of the log message. > > > When "rebase -i -p" tries to preserve merges of unrelated branches, it > > lost some parents: > > > > - When you have more than two parents, the commit in the new history > > ends up with fewer than expected number of parents and this breakage > > goes unnoticed; > > > > - When you are rebasing a merge with two parents and one is lost, the > > command tries to cherry-pick the original merge commit, and the command > > fails. > > > > Signed-off-by: Stephan Beyer Ok, big thanks :) > > diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh > > index a35212d..0df7640 100755 > > --- a/git-rebase--interactive.sh > > +++ b/git-rebase--interactive.sh > > @@ -174,6 +174,8 @@ pick_one_preserving_merges () { > > new_parents="$new_parents $new_p" > > ;; > > esac > > + else > > + new_parents="$new_parents $p" > > fi > > done > > Reading the surrounding code, it makes me wonder if you also need to futz > with variables like $preserve and $fast_forward. No, I would not see a reason for that. Regards, Stephan -- Stephan Beyer , PGP 0x6EDDD207FCC5040F