diff --git a/GitUI/CommitInfo/CommitInfo.cs b/GitUI/CommitInfo/CommitInfo.cs index 7225bb0ee77..8ffd06e9507 100644 --- a/GitUI/CommitInfo/CommitInfo.cs +++ b/GitUI/CommitInfo/CommitInfo.cs @@ -291,7 +291,6 @@ private void ReloadCommitInfo() if (_revision != null && !_revision.IsArtificial) { - UpdateRevisionInfo(); StartAsyncDataLoad(); } @@ -321,37 +320,46 @@ void UpdateCommitMessage() void StartAsyncDataLoad() { var cancellationToken = _asyncLoadCancellation.Next(); - var initialRevision = _revision; - ThreadHelper.JoinableTaskFactory.RunAsync(async () => { await LoadLinksForRevisionAsync(initialRevision); }).FileAndForget(); - ThreadHelper.JoinableTaskFactory.RunAsync(async () => { + var tasks = new List(); + + tasks.Add(LoadLinksForRevisionAsync(initialRevision)); + // No branch/tag data for artificial commands if (AppSettings.CommitInfoShowContainedInBranches) { cancellationToken.ThrowIfCancellationRequested(); - await LoadBranchInfoAsync(initialRevision.ObjectId); + + tasks.Add(LoadBranchInfoAsync(initialRevision.ObjectId)); } if (AppSettings.ShowAnnotatedTagsMessages) { cancellationToken.ThrowIfCancellationRequested(); - await LoadAnnotatedTagInfoAsync(initialRevision.Refs); + + tasks.Add(LoadAnnotatedTagInfoAsync(initialRevision.Refs)); } if (AppSettings.CommitInfoShowContainedInTags) { cancellationToken.ThrowIfCancellationRequested(); - await LoadTagInfoAsync(initialRevision.ObjectId); + + tasks.Add(LoadTagInfoAsync(initialRevision.ObjectId)); } if (AppSettings.CommitInfoShowTagThisCommitDerivesFrom) { cancellationToken.ThrowIfCancellationRequested(); - await LoadDescribeInfoAsync(initialRevision.ObjectId); + + tasks.Add(LoadDescribeInfoAsync(initialRevision.ObjectId)); } + + await Task.WhenAll(tasks); + + UpdateRevisionInfo(); }).FileAndForget(); return; @@ -374,7 +382,6 @@ async Task LoadLinksForRevisionAsync(GitRevision revision) await this.SwitchToMainThreadAsync(cancellationToken); _linksInfo = linksInfo; - UpdateRevisionInfo(); return; @@ -400,7 +407,6 @@ async Task LoadAnnotatedTagInfoAsync(IReadOnlyList refs) await this.SwitchToMainThreadAsync(cancellationToken); _annotatedTagsMessages = annotatedTagsMessages; - UpdateRevisionInfo(); return; @@ -463,7 +469,6 @@ async Task LoadTagInfoAsync(ObjectId objectId) await this.SwitchToMainThreadAsync(cancellationToken); _tags = tags; - UpdateRevisionInfo(); } async Task LoadBranchInfoAsync(ObjectId revision) @@ -481,7 +486,6 @@ async Task LoadBranchInfoAsync(ObjectId revision) await this.SwitchToMainThreadAsync(cancellationToken); _branches = branches; - UpdateRevisionInfo(); } async Task LoadDescribeInfoAsync(ObjectId commitId) @@ -492,7 +496,6 @@ async Task LoadDescribeInfoAsync(ObjectId commitId) await this.SwitchToMainThreadAsync(cancellationToken); _gitDescribeInfo = info; - UpdateRevisionInfo(); return;