Skip to content

Commit 0ea0cb4

Browse files
committed
feature: execute children search asynchronously
1 parent e34dfb1 commit 0ea0cb4

File tree

2 files changed

+18
-15
lines changed

2 files changed

+18
-15
lines changed

src/Commands/QueryCommitChildren.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,19 @@ public QueryCommitChildren(string repo, string commit, string filters)
1515
Args = $"rev-list --parents {filters} ^{commit}";
1616
}
1717

18-
public IEnumerable<string> Result()
18+
protected override void OnReadline(string line)
1919
{
20-
var rs = ReadToEnd();
21-
if (!rs.IsSuccess)
22-
yield break;
20+
if (line.Contains(_commit))
21+
_lines.Add(line);
22+
}
2323

24-
foreach (string s in rs.StdOut.Split('\n', StringSplitOptions.None))
25-
{
26-
if (s.Contains(_commit))
27-
yield return s.Substring(0, 40);
28-
}
24+
public IEnumerable<string> Result()
25+
{
26+
Exec();
27+
return _lines;
2928
}
3029

3130
private string _commit;
31+
private List<string> _lines = new List<string>();
3232
}
3333
}

src/ViewModels/CommitDetail.cs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -538,16 +538,19 @@ private void Refresh()
538538
Dispatcher.UIThread.Invoke(() => SignInfo = signInfo);
539539
});
540540

541-
Task.Run(() =>
542-
{
543-
var children = new Commands.QueryCommitChildren(_repo.FullPath, _commit.SHA, _repo.Settings.BuildHistoriesFilter()).Result();
544-
Dispatcher.UIThread.Invoke(() => Children.AddRange(children));
545-
});
546-
547541
if (_cancelToken != null)
548542
_cancelToken.Requested = true;
549543

550544
_cancelToken = new Commands.Command.CancelToken();
545+
546+
Task.Run(() =>
547+
{
548+
var cmdChildren = new Commands.QueryCommitChildren(_repo.FullPath, _commit.SHA, _repo.Settings.BuildHistoriesFilter()) { Cancel = _cancelToken };
549+
var children = cmdChildren.Result();
550+
if (!cmdChildren.Cancel.Requested)
551+
Dispatcher.UIThread.Post(() => Children.AddRange(children));
552+
});
553+
551554
Task.Run(() =>
552555
{
553556
var parent = _commit.Parents.Count == 0 ? "4b825dc642cb6eb9a060e54bf8d69288fbee4904" : _commit.Parents[0];

0 commit comments

Comments
 (0)