Skip to content

Commit 4f11d8a

Browse files
committed
feature: auto-remove history filter after deleting branch or tag (#1904)
Signed-off-by: leo <longshuang@msn.cn>
1 parent 2fdff53 commit 4f11d8a

File tree

3 files changed

+16
-0
lines changed

3 files changed

+16
-0
lines changed

src/Models/HistoryFilterCollection.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,18 @@ public FilterMode GetFilterMode(string pattern)
141141
return FilterMode.None;
142142
}
143143

144+
public void RemoveFilter(string pattern, FilterType type)
145+
{
146+
foreach (var filter in Filters)
147+
{
148+
if (filter.Type == type && filter.Pattern.Equals(pattern, StringComparison.Ordinal))
149+
{
150+
Filters.Remove(filter);
151+
break;
152+
}
153+
}
154+
}
155+
144156
public void RemoveBranchFiltersByPrefix(string pattern)
145157
{
146158
var dirty = new List<HistoryFilter>();

src/ViewModels/DeleteBranch.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,13 @@ public override async Task<bool> Sure()
5555

5656
if (_alsoDeleteTrackingRemote && TrackingRemoteBranch != null)
5757
await DeleteRemoteBranchAsync(TrackingRemoteBranch, log);
58+
59+
_repo.HistoryFilterCollection.RemoveFilter(Target.FullName, Models.FilterType.LocalBranch);
5860
}
5961
else
6062
{
6163
await DeleteRemoteBranchAsync(Target, log);
64+
_repo.HistoryFilterCollection.RemoveFilter(Target.FullName, Models.FilterType.RemoteBranch);
6265
}
6366

6467
log.Complete();

src/ViewModels/DeleteTag.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ public override async Task<bool> Sure()
4444
}
4545

4646
log.Complete();
47+
_repo.HistoryFilterCollection.RemoveFilter(Target.Name, Models.FilterType.Tag);
4748
_repo.MarkTagsDirtyManually();
4849
return succ;
4950
}

0 commit comments

Comments
 (0)