Re: [PATCH] rebase-i: keep old parents when preserving merges
Show 16 quoted lines
> Stephan Beyer <s-beyer@gmx.net> 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 <s-beyer@gmx.net>
Show 15 quoted lines
> > 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 <s-beyer@gmx.net>, PGP 0x6EDDD207FCC5040F