Skip to content

Commit

Permalink
CommitInfo: Parse hashes in message asynchronously (#10737)
Browse files Browse the repository at this point in the history
  • Loading branch information
mstv committed Feb 25, 2023
1 parent e7f4815 commit 88f95ae
Showing 1 changed file with 16 additions and 7 deletions.
23 changes: 16 additions & 7 deletions GitUI/CommitInfo/CommitInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
using System.Reactive.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using GitCommands;
using GitCommands.ExternalLinks;
using GitCommands.Git;
Expand Down Expand Up @@ -299,8 +300,6 @@ private void ReloadCommitInfo()
_tags = null;
_annotatedTagsMessages = null;

UpdateCommitMessage();

_annotatedTagsInfo = "";
_linksInfo = "";
_branchInfo = "";
Expand All @@ -313,20 +312,26 @@ private void ReloadCommitInfo()
}
else
{
rtbxCommitMessage.SetXHTMLText(GetFixCommitMessage());
RevisionInfo.Clear();
}

return;

void UpdateCommitMessage()
string GetFixCommitMessage()
{
if (_revision is null)
{
rtbxCommitMessage.SetXHTMLText(string.Empty);
return;
return string.Empty;
}

var data = _commitDataManager.CreateFromRevision(_revision, _children);
CommitData data = _commitDataManager.CreateFromRevision(_revision, _children);
return _commitDataBodyRenderer.Render(data, showRevisionsAsLinks: false);
}

async Task UpdateCommitMessageAsync()
{
CommitData data = _commitDataManager.CreateFromRevision(_revision, _children);

if (_revision.Body is null || (AppSettings.ShowGitNotes && !_revision.HasNotes))
{
Expand All @@ -335,7 +340,9 @@ void UpdateCommitMessage()
_revision.HasNotes = true;
}

var commitMessage = _commitDataBodyRenderer.Render(data, showRevisionsAsLinks: CommandClickedEvent is not null);
string commitMessage = _commitDataBodyRenderer.Render(data, showRevisionsAsLinks: CommandClickedEvent is not null);

await this.SwitchToMainThreadAsync();
rtbxCommitMessage.SetXHTMLText(commitMessage);
}

Expand All @@ -348,6 +355,8 @@ void StartAsyncDataLoad(RepoDistSettings settings)
{
List<Task> tasks = new();
tasks.Add(UpdateCommitMessageAsync());
tasks.Add(LoadLinksForRevisionAsync(initialRevision, settings));
// No branch/tag data for artificial commands
Expand Down

0 comments on commit 88f95ae

Please sign in to comment.