diff --git a/src/ViewModels/Repository.cs b/src/ViewModels/Repository.cs index a0ffb347..6b520595 100644 --- a/src/ViewModels/Repository.cs +++ b/src/ViewModels/Repository.cs @@ -567,7 +567,11 @@ namespace SourceGit.ViewModels if (!_isWorktree) { - _settings.LastCommitMessage = _workingCopy.CommitMessage; + if (_workingCopy.InProgressContext != null && !string.IsNullOrEmpty(_workingCopy.CommitMessage)) + File.WriteAllText(Path.Combine(GitDir, "MERGE_MSG"), _workingCopy.CommitMessage); + else + _settings.LastCommitMessage = _workingCopy.CommitMessage; + using var stream = File.Create(Path.Combine(_gitCommonDir, "sourcegit.settings")); JsonSerializer.Serialize(stream, _settings, JsonCodeGen.Default.RepositorySettings); } diff --git a/src/ViewModels/WorkingCopy.cs b/src/ViewModels/WorkingCopy.cs index 586a13dd..1cc24429 100644 --- a/src/ViewModels/WorkingCopy.cs +++ b/src/ViewModels/WorkingCopy.cs @@ -796,13 +796,8 @@ namespace SourceGit.ViewModels if (LoadCommitMessageFromFile(Path.Combine(_repo.GitDir, "rebase-merge", "message"))) break; - var rebaseProcessingFile = Path.Combine(_repo.GitDir, "rebase-apply", "final-commit"); - if (File.Exists(rebaseProcessingFile)) - { - var sha = File.ReadAllText(rebaseProcessingFile); - if (!string.IsNullOrEmpty(sha)) - CommitMessage = new Commands.QueryCommitFullMessage(_repo.FullPath, sha).GetResult(); - } + if (_inProgressContext is RebaseInProgress { StoppedAt: { } stopAt }) + CommitMessage = new Commands.QueryCommitFullMessage(_repo.FullPath, stopAt.SHA).GetResult(); } while (false); }