Skip to content

Commit 0db270b

Browse files
committed
improvement: do not clear the commit filter while change the branch
- do not clear the commit filter while changing the branch - do not change the filter if thereis `HEAD` filter while changing branch
1 parent 443e139 commit 0db270b

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

src/ViewModels/Checkout.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System.Threading.Tasks;
1+
using System.Linq;
2+
using System.Threading.Tasks;
23

34
namespace SourceGit.ViewModels
45
{
@@ -102,7 +103,8 @@ public override async Task<bool> Sure()
102103
log.Complete();
103104

104105
var b = _repo.Branches.Find(x => x.IsLocal && x.Name == Branch);
105-
if (b != null && _repo.HistoriesFilterMode == Models.FilterMode.Included)
106+
if (b != null && _repo.HistoriesFilterMode == Models.FilterMode.Included
107+
&& !_repo.Settings.HistoriesFilters.Any(f => f.Pattern == "HEAD"))
106108
_repo.SetBranchFilterMode(b, Models.FilterMode.Included, true, false);
107109

108110
_repo.MarkBranchesDirtyManually();

src/ViewModels/Repository.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1124,8 +1124,10 @@ public void SetBranchFilterMode(BranchTreeNode node, Models.FilterMode mode, boo
11241124

11251125
if (clearExists)
11261126
{
1127-
_settings.HistoriesFilters.Clear();
1128-
HistoriesFilterMode = Models.FilterMode.None;
1127+
_settings.HistoriesFilters.RemoveAll(_settings.HistoriesFilters
1128+
.Where(f => f.Type != Models.FilterType.SoloCommits).ToArray());
1129+
if (_settings.HistoriesFilters.Count <= 0)
1130+
HistoriesFilterMode = Models.FilterMode.None;
11291131
}
11301132

11311133
if (node.Backend is Models.Branch branch)

0 commit comments

Comments
 (0)