summaryrefslogtreecommitdiffstats
path: root/pkg/gui/controllers
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/gui/controllers')
-rw-r--r--pkg/gui/controllers/local_commits_controller.go20
1 files changed, 20 insertions, 0 deletions
diff --git a/pkg/gui/controllers/local_commits_controller.go b/pkg/gui/controllers/local_commits_controller.go
index 022ff1fa3..7684d6469 100644
--- a/pkg/gui/controllers/local_commits_controller.go
+++ b/pkg/gui/controllers/local_commits_controller.go
@@ -122,6 +122,11 @@ func (self *LocalCommitsController) GetKeybindings(opts types.KeybindingsOpts) [
Description: self.c.Tr.LcAmendToCommit,
},
{
+ Key: opts.GetKey(opts.Config.Commits.ResetCommitAuthor),
+ Handler: self.checkSelected(self.resetAuthor),
+ Description: self.c.Tr.LcResetCommitAuthor,
+ },
+ {
Key: opts.GetKey(opts.Config.Commits.RevertCommit),
Handler: self.checkSelected(self.revert),
Description: self.c.Tr.LcRevertCommit,
@@ -418,6 +423,21 @@ func (self *LocalCommitsController) amendTo(commit *models.Commit) error {
})
}
+func (self *LocalCommitsController) resetAuthor(commit *models.Commit) error {
+ return self.c.Confirm(types.ConfirmOpts{
+ Title: self.c.Tr.LcResetCommitAuthor,
+ Prompt: self.c.Tr.SureResetCommitAuthor,
+ HandleConfirm: func() error {
+ self.c.LogAction(self.c.Tr.Actions.ResetCommitAuthor)
+ if err := self.git.Rebase.ResetCommitAuthor(self.model.Commits, self.context().GetSelectedLineIdx()); err != nil {
+ return self.c.Error(err)
+ }
+
+ return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC})
+ },
+ })
+}
+
func (self *LocalCommitsController) revert(commit *models.Commit) error {
if commit.IsMerge() {
return self.createRevertMergeCommitMenu(commit)