Skip to content

Commit 220f060

Browse files
parthokundastefanhaller
authored andcommitted
Show staged but untracked files in tracked only filter view
1 parent a0dd3be commit 220f060

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

pkg/gui/filetree/file_tree.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,11 @@ func (self *FileTree) getFilesForDisplay() []*models.File {
8888
case DisplayUnstaged:
8989
return self.FilterFiles(func(file *models.File) bool { return file.HasUnstagedChanges })
9090
case DisplayTracked:
91-
return self.FilterFiles(func(file *models.File) bool { return file.Tracked })
91+
// untracked but staged files are technically not tracked by git
92+
// but including such files in the filtered mode helps see what files are getting committed
93+
return self.FilterFiles(func(file *models.File) bool { return file.Tracked || file.HasStagedChanges })
9294
case DisplayUntracked:
93-
return self.FilterFiles(func(file *models.File) bool { return !file.Tracked })
95+
return self.FilterFiles(func(file *models.File) bool { return !(file.Tracked || file.HasStagedChanges) })
9496
case DisplayConflicted:
9597
return self.FilterFiles(func(file *models.File) bool { return file.HasMergeConflicts })
9698
default:

pkg/integration/tests/filter_and_search/filter_by_file_status.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,16 @@ var FilterByFileStatus = NewIntegrationTest(NewIntegrationTestArgs{
2121

2222
shell.CreateFile("file-untracked", "bar")
2323
shell.UpdateFile("file-tracked", "baz")
24+
25+
shell.CreateFile("file-staged-but-untracked", "qux")
26+
shell.GitAdd("file-staged-but-untracked")
2427
},
2528
Run: func(t *TestDriver, keys config.KeybindingConfig) {
2629
t.Views().Files().
2730
Focus().
2831
Lines(
29-
Contains(`file-tracked`).IsSelected(),
32+
Equals("A file-staged-but-untracked").IsSelected(),
33+
Equals(" M file-tracked"),
3034
).
3135
Press(keys.Files.OpenStatusFilter).
3236
Tap(func() {
@@ -36,7 +40,7 @@ var FilterByFileStatus = NewIntegrationTest(NewIntegrationTestArgs{
3640
Confirm()
3741
}).
3842
Lines(
39-
Contains(`file-untracked`).IsSelected(),
43+
Equals("?? file-untracked").IsSelected(),
4044
).
4145
Press(keys.Files.OpenStatusFilter).
4246
Tap(func() {
@@ -46,7 +50,8 @@ var FilterByFileStatus = NewIntegrationTest(NewIntegrationTestArgs{
4650
Confirm()
4751
}).
4852
Lines(
49-
Contains(`file-tracked`).IsSelected(),
53+
Equals("A file-staged-but-untracked").IsSelected(),
54+
Equals(" M file-tracked"),
5055
).
5156
Press(keys.Files.OpenStatusFilter).
5257
Tap(func() {
@@ -56,7 +61,8 @@ var FilterByFileStatus = NewIntegrationTest(NewIntegrationTestArgs{
5661
Confirm()
5762
}).
5863
Lines(
59-
Contains(`file-tracked`).IsSelected(),
64+
Equals("A file-staged-but-untracked").IsSelected(),
65+
Equals(" M file-tracked"),
6066
)
6167
},
6268
})

0 commit comments

Comments
 (0)