diff --git a/src/Models/DiffResult.cs b/src/Models/DiffResult.cs index a0a02c6f..a625fc7b 100644 --- a/src/Models/DiffResult.cs +++ b/src/Models/DiffResult.cs @@ -587,16 +587,10 @@ namespace SourceGit.Models public string New { get; set; } = string.Empty; } - public class SubmoduleRevision - { - public Commit Commit { get; set; } = null; - public string FullMessage { get; set; } = string.Empty; - } - public class SubmoduleDiff { - public SubmoduleRevision Old { get; set; } = null; - public SubmoduleRevision New { get; set; } = null; + public RevisionSubmodule Old { get; set; } = null; + public RevisionSubmodule New { get; set; } = null; } public class DiffResult diff --git a/src/Models/RevisionFile.cs b/src/Models/RevisionFile.cs index b918e2e7..59868fcc 100644 --- a/src/Models/RevisionFile.cs +++ b/src/Models/RevisionFile.cs @@ -25,6 +25,7 @@ namespace SourceGit.Models public class RevisionSubmodule { - public string SHA { get; set; } + public Commit Commit { get; set; } = null; + public string FullMessage { get; set; } = string.Empty; } } diff --git a/src/ViewModels/CommitDetail.cs b/src/ViewModels/CommitDetail.cs index 4ab521b8..04fe8129 100644 --- a/src/ViewModels/CommitDetail.cs +++ b/src/ViewModels/CommitDetail.cs @@ -201,7 +201,34 @@ namespace SourceGit.ViewModels }); break; case Models.ObjectType.Commit: - ViewRevisionFileContent = new Models.RevisionSubmodule() { SHA = file.SHA }; + Task.Run(() => + { + var submoduleRoot = Path.Combine(_repo, file.Path); + var commit = new Commands.QuerySingleCommit(submoduleRoot, file.SHA).Result(); + if (commit != null) + { + var body = new Commands.QueryCommitFullMessage(submoduleRoot, file.SHA).Result(); + Dispatcher.UIThread.Invoke(() => + { + ViewRevisionFileContent = new Models.RevisionSubmodule() + { + Commit = commit, + FullMessage = body, + }; + }); + } + else + { + Dispatcher.UIThread.Invoke(() => + { + ViewRevisionFileContent = new Models.RevisionSubmodule() + { + Commit = new Models.Commit() { SHA = file.SHA }, + FullMessage = string.Empty, + }; + }); + } + }); break; default: ViewRevisionFileContent = null; diff --git a/src/ViewModels/DiffContext.cs b/src/ViewModels/DiffContext.cs index 8a240752..fc57788f 100644 --- a/src/ViewModels/DiffContext.cs +++ b/src/ViewModels/DiffContext.cs @@ -210,16 +210,16 @@ namespace SourceGit.ViewModels return size > 0 ? (new Bitmap(stream), size) : (null, size); } - private Models.SubmoduleRevision QuerySubmoduleRevision(string repo, string sha) + private Models.RevisionSubmodule QuerySubmoduleRevision(string repo, string sha) { var commit = new Commands.QuerySingleCommit(repo, sha).Result(); if (commit != null) { var body = new Commands.QueryCommitFullMessage(repo, sha).Result(); - return new Models.SubmoduleRevision() { Commit = commit, FullMessage = body }; + return new Models.RevisionSubmodule() { Commit = commit, FullMessage = body }; } - return new Models.SubmoduleRevision() + return new Models.RevisionSubmodule() { Commit = new Models.Commit() { SHA = sha }, FullMessage = string.Empty, diff --git a/src/Views/DiffView.axaml b/src/Views/DiffView.axaml index 027a2bb3..273bf6ce 100644 --- a/src/Views/DiffView.axaml +++ b/src/Views/DiffView.axaml @@ -151,7 +151,7 @@ - + diff --git a/src/Views/RevisionFiles.axaml b/src/Views/RevisionFiles.axaml index a3fb85e7..da48651b 100644 --- a/src/Views/RevisionFiles.axaml +++ b/src/Views/RevisionFiles.axaml @@ -78,10 +78,9 @@ - + - - +