1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-01-08 04:04:22 +02:00

Merge pull request #2707 from stefanhaller/better-prompt-for-discarding-old-file-changes

Better prompt for discarding old file changes
This commit is contained in:
Stefan Haller 2023-06-07 12:47:19 +02:00 committed by GitHub
commit e229e26fbe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 28 additions and 3 deletions

View File

@ -15,3 +15,11 @@ func (f *CommitFile) ID() string {
func (f *CommitFile) Description() string {
return f.Name
}
func (f *CommitFile) Added() bool {
return f.ChangeStatus == "A"
}
func (f *CommitFile) Deleted() bool {
return f.ChangeStatus == "D"
}

View File

@ -153,13 +153,24 @@ func (self *CommitFilesController) checkout(node *filetree.CommitFileNode) error
}
func (self *CommitFilesController) discard(node *filetree.CommitFileNode) error {
if node.File == nil {
return self.c.ErrorMsg(self.c.Tr.DiscardNotSupportedForDirectory)
}
if ok, err := self.c.Helpers().PatchBuilding.ValidateNormalWorkingTreeState(); !ok {
return err
}
prompt := self.c.Tr.DiscardFileChangesPrompt
if node.File.Added() {
prompt = self.c.Tr.DiscardAddedFileChangesPrompt
} else if node.File.Deleted() {
prompt = self.c.Tr.DiscardDeletedFileChangesPrompt
}
return self.c.Confirm(types.ConfirmOpts{
Title: self.c.Tr.DiscardFileChangesTitle,
Prompt: self.c.Tr.DiscardFileChangesPrompt,
Prompt: prompt,
HandleConfirm: func() error {
return self.c.WithWaitingStatus(self.c.Tr.RebasingStatus, func() error {
self.c.LogAction(self.c.Tr.Actions.DiscardOldFileChange)

View File

@ -268,6 +268,9 @@ type TranslationSet struct {
DiscardOldFileChange string
DiscardFileChangesTitle string
DiscardFileChangesPrompt string
DiscardAddedFileChangesPrompt string
DiscardDeletedFileChangesPrompt string
DiscardNotSupportedForDirectory string
DisabledForGPG string
CreateRepo string
BareRepo string
@ -954,7 +957,10 @@ func EnglishTranslationSet() TranslationSet {
CheckoutCommitFile: "Checkout file",
DiscardOldFileChange: "Discard this commit's changes to this file",
DiscardFileChangesTitle: "Discard file changes",
DiscardFileChangesPrompt: "Are you sure you want to discard this commit's changes to this file? If this file was created in this commit, it will be deleted",
DiscardFileChangesPrompt: "Are you sure you want to discard this commit's changes to this file?",
DiscardAddedFileChangesPrompt: "Are you sure you want to discard this commit's changes to this file? The file was added in this commit, so it will be deleted again.",
DiscardDeletedFileChangesPrompt: "Are you sure you want to discard this commit's changes to this file? The file was deleted in this commit, so it will reappear.",
DiscardNotSupportedForDirectory: "Discarding changes is not supported for entire directories. Please use a custom patch for this.",
DisabledForGPG: "Feature not available for users using GPG",
CreateRepo: "Not in a git repository. Create a new git repository? (y/n): ",
BareRepo: "You've attempted to open Lazygit in a bare repo but Lazygit does not yet support bare repos. Open most recent repo? (y/n) ",

View File

@ -43,7 +43,7 @@ var DiscardOldFileChange = NewIntegrationTest(NewIntegrationTestArgs{
t.ExpectPopup().Confirmation().
Title(Equals("Discard file changes")).
Content(Contains("Are you sure you want to discard this commit's changes to this file?")).
Content(Equals("Are you sure you want to discard this commit's changes to this file? The file was added in this commit, so it will be deleted again.")).
Confirm()
t.Views().CommitFiles().