1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-03-17 21:18:31 +02:00

Disallow discarding file changes while a directory is selected

Discarding changes to an entire directory doesn't quite work correctly in all
cases; for example, if the current commit added files to the directory (but the
directory existed before) then those files won't be removed.

It might be possible to fix the command so that these cases always work for
directories, but I don't think it's worth the effort (you can always use a
custom patch for that), so let's display an error for now.
This commit is contained in:
Stefan Haller 2023-03-12 16:52:02 +01:00
parent 0080684c7c
commit 1f801b91e4
2 changed files with 6 additions and 0 deletions

View File

@ -153,6 +153,10 @@ 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
}

View File

@ -268,6 +268,7 @@ type TranslationSet struct {
DiscardOldFileChange string
DiscardFileChangesTitle string
DiscardFileChangesPrompt string
DiscardNotSupportedForDirectory string
DisabledForGPG string
CreateRepo string
BareRepo string
@ -955,6 +956,7 @@ func EnglishTranslationSet() TranslationSet {
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",
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) ",