Skip to content
Prev Previous commit
Next Next commit
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
  • Loading branch information
heartacker committed Aug 8, 2025
commit 0db270b8aeb806fa017fd19bb6af4ba8091f45d5
6 changes: 4 additions & 2 deletions src/ViewModels/Checkout.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System.Threading.Tasks;
using System.Linq;
using System.Threading.Tasks;

namespace SourceGit.ViewModels
{
Expand Down Expand Up @@ -102,7 +103,8 @@ public override async Task<bool> Sure()
log.Complete();

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

_repo.MarkBranchesDirtyManually();
Expand Down
6 changes: 4 additions & 2 deletions src/ViewModels/Repository.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1124,8 +1124,10 @@ public void SetBranchFilterMode(BranchTreeNode node, Models.FilterMode mode, boo

if (clearExists)
{
_settings.HistoriesFilters.Clear();
HistoriesFilterMode = Models.FilterMode.None;
_settings.HistoriesFilters.RemoveAll(_settings.HistoriesFilters
.Where(f => f.Type != Models.FilterType.SoloCommits).ToArray());
if (_settings.HistoriesFilters.Count <= 0)
HistoriesFilterMode = Models.FilterMode.None;
}

if (node.Backend is Models.Branch branch)
Expand Down
Loading