diff options
author | Orgad Shaneh <orgad.shaneh@audiocodes.com> | 2013-07-05 17:37:58 +0300 |
---|---|---|
committer | Orgad Shaneh <orgads@gmail.com> | 2013-07-08 13:21:41 +0200 |
commit | aad68917b92f1dee4f09c9c4b0d102f04558b39c (patch) | |
tree | bc7680f3c931870fcda1a6894323392a00c115a6 | |
parent | 8aa1c9bc37dd060b188b4e6389b5c8063f8754d8 (diff) | |
download | qt-creator-aad68917b92f1dee4f09c9c4b0d102f04558b39c.tar.gz |
Git: Always allow stash before cherry-pick/revert
Currently done only from "Actions on Commits"
Change-Id: Ide34e198e72f554ba6fd75ef21aaaf35917b4f6a
Reviewed-by: Petar Perisin <petar.perisin@gmail.com>
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
-rw-r--r-- | src/plugins/git/gitclient.cpp | 12 | ||||
-rw-r--r-- | src/plugins/git/gitplugin.cpp | 9 |
2 files changed, 12 insertions, 9 deletions
diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index 2c3db974d0..dffc01b287 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 917a47a39c..450a0ddf94 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); } |