diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index 747ad6e4cbb66622d64ee680137ea092bc399aa0..f51d2f6d8b7b18ac378ab4bc40e218d7ee375095 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -2521,6 +2521,16 @@ bool GitClient::getCommitData(const QString &workingDirectory, // Run status. Note that it has exitcode 1 if there are no added files. QString output; + if (commitData.commitType == FixupCommit) { + QStringList arguments; + arguments << QLatin1String("HEAD") << QLatin1String("--not") + << QLatin1String("--remotes") << QLatin1String("-n1"); + synchronousLog(repoDirectory, arguments, &output, errorMessage); + if (output.isEmpty()) { + *errorMessage = msgNoCommits(false); + return false; + } + } const StatusResult status = gitStatus(repoDirectory, ShowAll, &output, errorMessage); switch (status) { case StatusChanged: @@ -3066,6 +3076,11 @@ QString GitClient::msgNoChangedFiles() return tr("There are no modified files."); } +QString GitClient::msgNoCommits(bool includeRemote) +{ + return includeRemote ? tr("No commits were found") : tr("No local commits were found"); +} + void GitClient::stashPop(const QString &workingDirectory, const QString &stash) { QStringList arguments(QLatin1String("stash")); diff --git a/src/plugins/git/gitclient.h b/src/plugins/git/gitclient.h index 4b230594b62383566bbfbada4b2e5dbecf62f2d2..02fb6f1675f7d080a5342b09bba9ebc74b1a2005 100644 --- a/src/plugins/git/gitclient.h +++ b/src/plugins/git/gitclient.h @@ -316,6 +316,7 @@ public: void handleMergeConflicts(const QString &workingDir, const QString &commit, const QString &abortCommand); static QString msgNoChangedFiles(); + static QString msgNoCommits(bool includeRemote); static const char *noColorOption; static const char *decorateOption; diff --git a/src/plugins/git/logchangedialog.cpp b/src/plugins/git/logchangedialog.cpp index 373e8f37e8785b09d1619df5adfa8bd6fcb84fec..4f11be1d115e9d34f8410905846c09873483817f 100644 --- a/src/plugins/git/logchangedialog.cpp +++ b/src/plugins/git/logchangedialog.cpp @@ -73,8 +73,7 @@ bool LogChangeWidget::init(const QString &repository, const QString &commit, boo return false; if (!m_model->rowCount()) { VcsBase::VcsBaseOutputWindow::instance()->appendError( - includeRemote ? tr("No commits were found") - : tr("No local commits were found")); + GitPlugin::instance()->gitClient()->msgNoCommits(includeRemote)); return false; } selectionModel()->select(m_model->index(0, 0),