diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index 2c3db974d080fdbfba934ff29de4605042450a1a..dffc01b2875d40c54b718454d258dfb7f6d85c11 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -3155,7 +3155,11 @@ void GitClient::rebase(const QString &workingDirectory, const QString &baseBranc bool GitClient::synchronousRevert(const QString &workingDirectory, const QString &commit) { QStringList arguments; - QString command = QLatin1String("revert"); + const QString command = QLatin1String("revert"); + // Do not stash if --continue or --abort is given as the commit + if (!commit.startsWith(QLatin1Char('-')) && !beginStashScope(workingDirectory, command)) + return false; + arguments << command << QLatin1String("--no-edit") << commit; return executeAndHandleConflicts(workingDirectory, arguments, command); @@ -3164,7 +3168,11 @@ bool GitClient::synchronousRevert(const QString &workingDirectory, const QString bool GitClient::synchronousCherryPick(const QString &workingDirectory, const QString &commit) { QStringList arguments; - QString command = QLatin1String("cherry-pick"); + const QString command = QLatin1String("cherry-pick"); + // Do not stash if --continue or --abort is given as the commit + if (!commit.startsWith(QLatin1Char('-')) && !beginStashScope(workingDirectory, command)) + return false; + arguments << command << commit; return executeAndHandleConflicts(workingDirectory, arguments, command); diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp index 917a47a39ce05241dd2f5f135aa25886125462a9..450a0ddf94cd60170e9f8989a1d8887d2f9fa257 100644 --- a/src/plugins/git/gitplugin.cpp +++ b/src/plugins/git/gitplugin.cpp @@ -857,28 +857,23 @@ void GitPlugin::startChangeRelatedAction() if (!ensureAllDocumentsSaved()) return; - QString command; bool (GitClient::*commandFunction)(const QString&, const QString&); switch (dialog.command()) { case CherryPick: - command = QLatin1String("Cherry-pick"); commandFunction = &GitClient::synchronousCherryPick; break; case Revert: - command = QLatin1String("Revert"); commandFunction = &GitClient::synchronousRevert; break; case Checkout: - command = QLatin1String("Checkout"); + if (!m_gitClient->beginStashScope(workingDirectory, QLatin1String("Checkout"))) + return; commandFunction = &GitClient::synchronousCheckout; break; default: return; } - if (!m_gitClient->beginStashScope(workingDirectory, command)) - return; - (m_gitClient->*commandFunction)(workingDirectory, change); }