This is v3, rebased on top of sp/maint with sp/master and sh/maint-rebase3. So, it should apply cleanly to that. Junio's feedback aside, the only change from v2 is that maint-rebase3's dropped commit check needs to be done before Johannes's recent addition of: test -s "$TODO" || echo noop >> "$TODO" Because now the todo may temporarily have picks in it while probing for parents that could later be removed by the dropped/cherry-picked commit check. Previously todo never had temporary entries, so it didn't matter when the dropped commit check was done. (Apologies for not seeing Junio's what's cooking first and using his maint/master instead of Shawn's. Let me know if I need to redo this and I will get even more practice at rebasing.) (Gah, resending with the list cc'd this time. Dammit, sorry about that.) Thanks, Stephen Stephen Haberman (7): rebase-i-p: test to exclude commits from todo based on its parents rebase-i-p: use HEAD for updating the ref instead of mapping OLDHEAD rebase-i-p: delay saving current-commit to REWRITTEN if squashing rebase-i-p: fix 'no squashing merges' tripping up non-merges rebase-i-p: only list commits that require rewriting in todo rebase-i-p: do not include non-first-parent commits touching UPSTREAM rebase-i-p: if todo was reordered use HEAD as the rewritten parent git-rebase--interactive.sh | 131 ++++++++++++++++++----------- t/t3411-rebase-preserve-around-merges.sh | 136 ++++++++++++++++++++++++++++++ 2 files changed, 218 insertions(+), 49 deletions(-) create mode 100644 t/t3411-rebase-preserve-around-merges.sh -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html