This splits the `rebase --preserve-merges` functionnality from git-rebase--interactive.sh. All the dead code left by the duplication of git-rebase--interactive.sh is also removed. This will make it easier to rewrite this script in C. This patch series is based of js/sequencer-and-root-commits. Changes since v2: - Removing ` Alban Gruin (4): rebase: duplicate git-rebase--interactive.sh to git-rebase--preserve-merges.sh rebase: strip unused code in git-rebase--preserve-merges.sh rebase: use the new git-rebase--preserve-merges.sh rebase: remove -p code from git-rebase--interactive.sh .gitignore | 1 + Makefile | 2 + git-rebase--interactive.sh | 802 +------------------------------ git-rebase--preserve-merges.sh | 1012 ++++++++++++++++++++++++++++++++++++++++ git-rebase.sh | 32 +- 5 files changed, 1048 insertions(+), 801 deletions(-) create mode 100644 git-rebase--preserve-merges.sh -- 2.16.1