]> asedeno.scripts.mit.edu Git - git.git/blobdiff - git-rebase--interactive.sh
rebase-i-p: do not include non-first-parent commits touching UPSTREAM
[git.git] / git-rebase--interactive.sh
index 851066f0f47a6c850c649112a88a060fc3ecb99a..495f554b6576cfb1f32d94f319b325a4de9d648d 100755 (executable)
@@ -583,6 +583,7 @@ first and then run 'git rebase --continue' again."
                        # parents to rewrite and skipping dropped commits would
                        # prematurely end our probe
                        MERGES_OPTION=
+                       first_after_upstream="$(git rev-list --reverse --first-parent $UPSTREAM..$HEAD | head -n 1)"
                else
                        MERGES_OPTION="--no-merges --cherry-pick"
                fi
@@ -603,7 +604,7 @@ first and then run 'git rebase --continue' again."
                                preserve=t
                                for p in $(git rev-list --parents -1 $sha1 | cut -d' ' -f2-)
                                do
-                                       if test -f "$REWRITTEN"/$p
+                                       if test -f "$REWRITTEN"/$p -a \( $p != $UPSTREAM -o $sha1 = $first_after_upstream \)
                                        then
                                                preserve=f
                                        fi