Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pkg/commands/git_commands/rebase.go
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ func (self *RebaseCommands) PrepareInteractiveRebaseCommand(baseSha string, todo
debug = "TRUE"
}

cmdStr := fmt.Sprintf("git rebase --interactive --autostash --keep-empty %s", baseSha)
cmdStr := fmt.Sprintf("git rebase --interactive --autostash --keep-empty --no-autosquash %s", baseSha)
self.Log.WithField("command", cmdStr).Debug("RunCommand")

cmdObj := self.cmd.New(cmdStr)
Expand Down
6 changes: 3 additions & 3 deletions pkg/commands/git_commands/rebase_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ func TestRebaseRebaseBranch(t *testing.T) {
testName: "successful rebase",
arg: "master",
runner: oscommands.NewFakeRunner(t).
Expect(`git rebase --interactive --autostash --keep-empty master`, "", nil),
Expect(`git rebase --interactive --autostash --keep-empty --no-autosquash master`, "", nil),
test: func(err error) {
assert.NoError(t, err)
},
Expand All @@ -35,7 +35,7 @@ func TestRebaseRebaseBranch(t *testing.T) {
testName: "unsuccessful rebase",
arg: "master",
runner: oscommands.NewFakeRunner(t).
Expect(`git rebase --interactive --autostash --keep-empty master`, "", errors.New("error")),
Expect(`git rebase --interactive --autostash --keep-empty --no-autosquash master`, "", errors.New("error")),
test: func(err error) {
assert.Error(t, err)
},
Expand Down Expand Up @@ -125,7 +125,7 @@ func TestRebaseDiscardOldFileChanges(t *testing.T) {
commitIndex: 0,
fileName: "test999.txt",
runner: oscommands.NewFakeRunner(t).
Expect(`git rebase --interactive --autostash --keep-empty abcdef`, "", nil).
Expect(`git rebase --interactive --autostash --keep-empty --no-autosquash abcdef`, "", nil).
Expect(`git cat-file -e HEAD^:"test999.txt"`, "", nil).
Expect(`git checkout HEAD^ -- "test999.txt"`, "", nil).
Expect(`git commit --amend --no-edit --allow-empty`, "", nil).
Expand Down
54 changes: 54 additions & 0 deletions pkg/integration/tests/branch/rebase_does_not_autosquash.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package branch

import (
"github.com/jesseduffield/lazygit/pkg/config"
. "github.com/jesseduffield/lazygit/pkg/integration/components"
)

var RebaseDoesNotAutosquash = NewIntegrationTest(NewIntegrationTestArgs{
Description: "Rebase a branch that has fixups onto another branch, and verify that the fixups are not squashed even if rebase.autoSquash is enabled globally.",
ExtraCmdArgs: "",
Skip: false,
SetupConfig: func(config *config.AppConfig) {},
SetupRepo: func(shell *Shell) {
shell.SetConfig("rebase.autoSquash", "true")

shell.
EmptyCommit("base").
NewBranch("my-branch").
Checkout("master").
EmptyCommit("master commit").
Checkout("my-branch").
EmptyCommit("branch commit").
EmptyCommit("fixup! branch commit")
},
Run: func(t *TestDriver, keys config.KeybindingConfig) {
t.Views().Commits().
Lines(
Contains("fixup! branch commit"),
Contains("branch commit"),
Contains("base"),
)

t.Views().Branches().
Focus().
Lines(
Contains("my-branch").IsSelected(),
Contains("master"),
).
SelectNextItem().
Press(keys.Branches.RebaseBranch)

t.ExpectPopup().Confirmation().
Title(Equals("Rebasing")).
Content(Contains("Are you sure you want to rebase 'my-branch' on top of 'master'?")).
Confirm()

t.Views().Commits().Lines(
Contains("fixup! branch commit"),
Contains("branch commit"),
Contains("master commit"),
Contains("base"),
)
},
})
1 change: 1 addition & 0 deletions pkg/integration/tests/tests.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ var tests = []*components.IntegrationTest{
branch.Delete,
branch.Rebase,
branch.RebaseAndDrop,
branch.RebaseDoesNotAutosquash,
branch.Suggestions,
branch.Reset,
branch.DetachedHead,
Expand Down