From 5645a662de36bd742c36f26b34b9e74510ba54eb Mon Sep 17 00:00:00 2001 From: Stefan Haller Date: Thu, 6 Apr 2023 06:46:48 +0200 Subject: [PATCH] Use --rebase-merges for interactive rebase At the moment it doesn't make a big difference, because the vast majority of callers create a list of todos themselves to completely replace what git came up with. We're changing this in the following commits though, and then it's helpful to preserve merges. --- pkg/commands/git_commands/rebase.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkg/commands/git_commands/rebase.go b/pkg/commands/git_commands/rebase.go index 5828ffbaa..b34f8886a 100644 --- a/pkg/commands/git_commands/rebase.go +++ b/pkg/commands/git_commands/rebase.go @@ -173,7 +173,12 @@ func (self *RebaseCommands) PrepareInteractiveRebaseCommand(opts PrepareInteract debug = "TRUE" } - cmdStr := fmt.Sprintf("git rebase --interactive --autostash --keep-empty --empty=keep --no-autosquash %s", opts.baseShaOrRoot) + rebaseMergesArg := " --rebase-merges" + if self.version.IsOlderThan(2, 22, 0) { + rebaseMergesArg = "" + } + cmdStr := fmt.Sprintf("git rebase --interactive --autostash --keep-empty --empty=keep --no-autosquash%s %s", + rebaseMergesArg, opts.baseShaOrRoot) self.Log.WithField("command", cmdStr).Debug("RunCommand") cmdObj := self.cmd.New(cmdStr)