mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-03-17 21:18:31 +02:00
Merge pull request #2712 from stefanhaller/discard-changes-only-from-local-commits
Allow discarding changes only from local commits
This commit is contained in:
commit
1489a31e48
@ -153,6 +153,11 @@ func (self *CommitFilesController) checkout(node *filetree.CommitFileNode) error
|
||||
}
|
||||
|
||||
func (self *CommitFilesController) discard(node *filetree.CommitFileNode) error {
|
||||
parentContext, ok := self.c.CurrentContext().GetParentContext()
|
||||
if !ok || parentContext.GetKey() != context.LOCAL_COMMITS_CONTEXT_KEY {
|
||||
return self.c.ErrorMsg(self.c.Tr.CanOnlyDiscardFromLocalCommits)
|
||||
}
|
||||
|
||||
if node.File == nil {
|
||||
return self.c.ErrorMsg(self.c.Tr.DiscardNotSupportedForDirectory)
|
||||
}
|
||||
|
@ -265,6 +265,7 @@ type TranslationSet struct {
|
||||
ViewItemFiles string
|
||||
CommitFilesTitle string
|
||||
CheckoutCommitFile string
|
||||
CanOnlyDiscardFromLocalCommits string
|
||||
DiscardOldFileChange string
|
||||
DiscardFileChangesTitle string
|
||||
DiscardFileChangesPrompt string
|
||||
@ -955,6 +956,7 @@ func EnglishTranslationSet() TranslationSet {
|
||||
ViewItemFiles: "View selected item's files",
|
||||
CommitFilesTitle: "Commit files",
|
||||
CheckoutCommitFile: "Checkout file",
|
||||
CanOnlyDiscardFromLocalCommits: "Changes can only be discarded from local commits",
|
||||
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?",
|
||||
|
@ -0,0 +1,41 @@
|
||||
package stash
|
||||
|
||||
import (
|
||||
"github.com/jesseduffield/lazygit/pkg/config"
|
||||
. "github.com/jesseduffield/lazygit/pkg/integration/components"
|
||||
)
|
||||
|
||||
var PreventDiscardingFileChanges = NewIntegrationTest(NewIntegrationTestArgs{
|
||||
Description: "Check that it is not allowed to discard changes to a file of a stash",
|
||||
ExtraCmdArgs: []string{},
|
||||
Skip: false,
|
||||
SetupConfig: func(config *config.AppConfig) {},
|
||||
SetupRepo: func(shell *Shell) {
|
||||
shell.EmptyCommit("initial commit")
|
||||
shell.CreateFile("file", "content")
|
||||
shell.GitAddAll()
|
||||
shell.Stash("stash one")
|
||||
},
|
||||
Run: func(t *TestDriver, keys config.KeybindingConfig) {
|
||||
t.Views().Files().IsEmpty()
|
||||
|
||||
t.Views().Stash().
|
||||
Focus().
|
||||
Lines(
|
||||
Contains("stash one").IsSelected(),
|
||||
).
|
||||
PressEnter()
|
||||
|
||||
t.Views().CommitFiles().
|
||||
IsFocused().
|
||||
Lines(
|
||||
Contains("file").IsSelected(),
|
||||
).
|
||||
Press(keys.Universal.Remove)
|
||||
|
||||
t.ExpectPopup().Confirmation().
|
||||
Title(Equals("Error")).
|
||||
Content(Contains("Changes can only be discarded from local commits")).
|
||||
Confirm()
|
||||
},
|
||||
})
|
@ -155,6 +155,7 @@ var tests = []*components.IntegrationTest{
|
||||
stash.CreateBranch,
|
||||
stash.Drop,
|
||||
stash.Pop,
|
||||
stash.PreventDiscardingFileChanges,
|
||||
stash.Rename,
|
||||
stash.Stash,
|
||||
stash.StashAll,
|
||||
|
Loading…
x
Reference in New Issue
Block a user