[PATCH] rebase with preserve merges should not show merged commits
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.
Signed-off-by: Jörg Sommer <joerg@alea.gnuu.de> --- git-rebase--interactive.sh | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-)
Show changes to git-rebase--interactive.sh +3 −1
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index 8aa7371..3879841 100755 --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@ -162,6 +162,8 @@ pick_one_preserving_merges () { new_parents="$new_parents $new_p" ;; esac + else + new_parents="$new_parents $p" fi done case $fast_forward in @@ -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 | \ sed -n "s/^>/pick /p" > "$TODO" cat >> "$TODO" << EOF
-- 1.5.4.4