This commit is contained in:
Noah 2025-05-05 18:54:45 +00:00 committed by GitHub
commit 9b24dffb40
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 28 additions and 7 deletions

View file

@ -76,6 +76,7 @@ func AddCoAuthorToDescription(description string, author string) string {
// ResetToCommit reset to commit // ResetToCommit reset to commit
func (self *CommitCommands) ResetToCommit(hash string, strength string, envVars []string) error { func (self *CommitCommands) ResetToCommit(hash string, strength string, envVars []string) error {
cmdArgs := NewGitCmd("reset").Arg("--"+strength, hash).ToArgv() cmdArgs := NewGitCmd("reset").Arg("--"+strength, hash).ToArgv()
self.Log.Warn("Here")
return self.cmd.New(cmdArgs). return self.cmd.New(cmdArgs).
// prevents git from prompting us for input which would freeze the program // prevents git from prompting us for input which would freeze the program

View file

@ -144,14 +144,17 @@ func (self *FilesController) createResetMenu() error {
red.Sprint("git reset --hard HEAD"), red.Sprint("git reset --hard HEAD"),
}, },
OnPress: func() error { OnPress: func() error {
self.c.LogAction(self.c.Tr.Actions.HardReset) dirtyWorkingTree := self.c.Helpers().WorkingTree.IsWorkingTreeDirty()
if err := self.c.Git().WorkingTree.ResetHard("HEAD"); err != nil { self.c.Log.Warn(dirtyWorkingTree)
return err if dirtyWorkingTree {
return self.c.Confirm(types.ConfirmOpts{
Title: self.c.Tr.HardResetTitle,
Prompt: self.c.Tr.HardResetPrompt,
HandleConfirm: hardReset(self),
})
} else {
return hardReset(self)()
} }
return self.c.Refresh(
types.RefreshOptions{Mode: types.ASYNC, Scope: []types.RefreshableView{types.FILES}},
)
}, },
Key: 'h', Key: 'h',
}, },
@ -160,6 +163,19 @@ func (self *FilesController) createResetMenu() error {
return self.c.Menu(types.CreateMenuOptions{Title: "", Items: menuItems}) return self.c.Menu(types.CreateMenuOptions{Title: "", Items: menuItems})
} }
func hardReset(self *FilesController) func() error {
return func() error {
self.c.LogAction(self.c.Tr.Actions.HardReset)
if err := self.c.Git().WorkingTree.ResetHard("HEAD"); err != nil {
return err
}
return self.c.Refresh(
types.RefreshOptions{Mode: types.ASYNC, Scope: []types.RefreshableView{types.FILES}},
)
}
}
func (self *FilesController) animateExplosion() { func (self *FilesController) animateExplosion() {
self.Explode(self.c.Views().Files, func() { self.Explode(self.c.Views().Files, func() {
self.c.PostRefreshUpdate(self.c.Contexts().Files) self.c.PostRefreshUpdate(self.c.Contexts().Files)

View file

@ -457,6 +457,8 @@ type TranslationSet struct {
DiscardUntrackedFiles string DiscardUntrackedFiles string
DiscardStagedChanges string DiscardStagedChanges string
HardReset string HardReset string
HardResetTitle string
HardResetPrompt string
BranchDeleteTooltip string BranchDeleteTooltip string
TagDeleteTooltip string TagDeleteTooltip string
Delete string Delete string
@ -1544,6 +1546,8 @@ func EnglishTranslationSet() *TranslationSet {
DiscardUntrackedFiles: "Discard untracked files", DiscardUntrackedFiles: "Discard untracked files",
DiscardStagedChanges: "Discard staged changes", DiscardStagedChanges: "Discard staged changes",
HardReset: "Hard reset", HardReset: "Hard reset",
HardResetTitle: "Hard reset",
HardResetPrompt: "This will also reset the uncommited files",
BranchDeleteTooltip: "View delete options for local/remote branch.", BranchDeleteTooltip: "View delete options for local/remote branch.",
TagDeleteTooltip: "View delete options for local/remote tag.", TagDeleteTooltip: "View delete options for local/remote tag.",
Delete: "Delete", Delete: "Delete",