Skip to content

Commit e6e9f00

Browse files
committed
Ensure committable files for "amend to" and "create fixup commit"
These would previously fail with confusing error messages when no files were staged. The diff is best viewed with "ignore whitespace" turned on.
1 parent ea7bcf8 commit e6e9f00

File tree

1 file changed

+19
-13
lines changed

1 file changed

+19
-13
lines changed

pkg/gui/controllers/local_commits_controller.go

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -568,10 +568,12 @@ func (self *LocalCommitsController) moveUp(commit *models.Commit) error {
568568

569569
func (self *LocalCommitsController) amendTo(commit *models.Commit) error {
570570
if self.isHeadCommit() {
571-
if err := self.c.Helpers().AmendHelper.AmendHead(); err != nil {
572-
return err
573-
}
574-
return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC})
571+
return self.c.Helpers().WorkingTree.WithEnsureCommitableFiles(func() error {
572+
if err := self.c.Helpers().AmendHelper.AmendHead(); err != nil {
573+
return err
574+
}
575+
return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC})
576+
})
575577
}
576578

577579
if self.c.Git().Status.WorkingTreeState() != enums.REBASE_MODE_NONE {
@@ -582,10 +584,12 @@ func (self *LocalCommitsController) amendTo(commit *models.Commit) error {
582584
Title: self.c.Tr.AmendCommitTitle,
583585
Prompt: self.c.Tr.AmendCommitPrompt,
584586
HandleConfirm: func() error {
585-
return self.c.WithWaitingStatus(self.c.Tr.AmendingStatus, func(gocui.Task) error {
586-
self.c.LogAction(self.c.Tr.Actions.AmendCommit)
587-
err := self.c.Git().Rebase.AmendTo(self.c.Model().Commits, self.context().GetView().SelectedLineIdx())
588-
return self.c.Helpers().MergeAndRebase.CheckMergeOrRebase(err)
587+
return self.c.Helpers().WorkingTree.WithEnsureCommitableFiles(func() error {
588+
return self.c.WithWaitingStatus(self.c.Tr.AmendingStatus, func(gocui.Task) error {
589+
self.c.LogAction(self.c.Tr.Actions.AmendCommit)
590+
err := self.c.Git().Rebase.AmendTo(self.c.Model().Commits, self.context().GetView().SelectedLineIdx())
591+
return self.c.Helpers().MergeAndRebase.CheckMergeOrRebase(err)
592+
})
589593
})
590594
},
591595
})
@@ -709,12 +713,14 @@ func (self *LocalCommitsController) createFixupCommit(commit *models.Commit) err
709713
Title: self.c.Tr.CreateFixupCommit,
710714
Prompt: prompt,
711715
HandleConfirm: func() error {
712-
self.c.LogAction(self.c.Tr.Actions.CreateFixupCommit)
713-
if err := self.c.Git().Commit.CreateFixupCommit(commit.Sha); err != nil {
714-
return self.c.Error(err)
715-
}
716+
return self.c.Helpers().WorkingTree.WithEnsureCommitableFiles(func() error {
717+
self.c.LogAction(self.c.Tr.Actions.CreateFixupCommit)
718+
if err := self.c.Git().Commit.CreateFixupCommit(commit.Sha); err != nil {
719+
return self.c.Error(err)
720+
}
716721

717-
return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC})
722+
return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC})
723+
})
718724
},
719725
})
720726
}

0 commit comments

Comments
 (0)