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

Show staged but untracked files in tracked only filter view

This commit is contained in:
Partho Kunda
2025-03-17 22:44:07 +06:00
committed by Stefan Haller
parent a0dd3bec8e
commit 220f06052a
2 changed files with 14 additions and 6 deletions

View File

@ -88,9 +88,11 @@ func (self *FileTree) getFilesForDisplay() []*models.File {
case DisplayUnstaged:
return self.FilterFiles(func(file *models.File) bool { return file.HasUnstagedChanges })
case DisplayTracked:
return self.FilterFiles(func(file *models.File) bool { return file.Tracked })
// untracked but staged files are technically not tracked by git
// but including such files in the filtered mode helps see what files are getting committed
return self.FilterFiles(func(file *models.File) bool { return file.Tracked || file.HasStagedChanges })
case DisplayUntracked:
return self.FilterFiles(func(file *models.File) bool { return !file.Tracked })
return self.FilterFiles(func(file *models.File) bool { return !(file.Tracked || file.HasStagedChanges) })
case DisplayConflicted:
return self.FilterFiles(func(file *models.File) bool { return file.HasMergeConflicts })
default:

View File

@ -21,12 +21,16 @@ var FilterByFileStatus = NewIntegrationTest(NewIntegrationTestArgs{
shell.CreateFile("file-untracked", "bar")
shell.UpdateFile("file-tracked", "baz")
shell.CreateFile("file-staged-but-untracked", "qux")
shell.GitAdd("file-staged-but-untracked")
},
Run: func(t *TestDriver, keys config.KeybindingConfig) {
t.Views().Files().
Focus().
Lines(
Contains(`file-tracked`).IsSelected(),
Equals("A file-staged-but-untracked").IsSelected(),
Equals(" M file-tracked"),
).
Press(keys.Files.OpenStatusFilter).
Tap(func() {
@ -36,7 +40,7 @@ var FilterByFileStatus = NewIntegrationTest(NewIntegrationTestArgs{
Confirm()
}).
Lines(
Contains(`file-untracked`).IsSelected(),
Equals("?? file-untracked").IsSelected(),
).
Press(keys.Files.OpenStatusFilter).
Tap(func() {
@ -46,7 +50,8 @@ var FilterByFileStatus = NewIntegrationTest(NewIntegrationTestArgs{
Confirm()
}).
Lines(
Contains(`file-tracked`).IsSelected(),
Equals("A file-staged-but-untracked").IsSelected(),
Equals(" M file-tracked"),
).
Press(keys.Files.OpenStatusFilter).
Tap(func() {
@ -56,7 +61,8 @@ var FilterByFileStatus = NewIntegrationTest(NewIntegrationTestArgs{
Confirm()
}).
Lines(
Contains(`file-tracked`).IsSelected(),
Equals("A file-staged-but-untracked").IsSelected(),
Equals(" M file-tracked"),
)
},
})