Re: [PATCH] rebase-i: keep old parents when preserving merges
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jul 16, 2008, 21:36 UTC
- Message-ID
- <7vd4ldpl3k.fsf@gitster.siamese.dyndns.org>
- In-Reply-To
- <1216173109-11155-1-git-send-email-s-beyer@gmx.net>
Stephan Beyer <s-beyer@gmx.net> writes:
... Based on the discussion thread, here is a rewrite of the log message.
Show 25 quoted lines
> 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>
>
> 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
> doneReading the surrounding code, it makes me wonder if you also need to futz with variables like $preserve and $fast_forward.