diff options
Diffstat (limited to 'src/plugins/git/branchdialog.cpp')
-rw-r--r-- | src/plugins/git/branchdialog.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/plugins/git/branchdialog.cpp b/src/plugins/git/branchdialog.cpp index 8fc07d8e0d..11459f3a31 100644 --- a/src/plugins/git/branchdialog.cpp +++ b/src/plugins/git/branchdialog.cpp @@ -192,15 +192,17 @@ void BranchDialog::checkout() m_model->checkoutBranch(idx); } else if (branchCheckoutDialog.exec() == QDialog::Accepted && m_model) { - QString stashMessage; - if (branchCheckoutDialog.makeStashOfCurrentBranch() - || branchCheckoutDialog.moveLocalChangesToNextBranch()) { - - if (!gitClient->beginStashScope(m_repository, currentBranch + QLatin1String("-AutoStash"), NoPrompt)) + if (branchCheckoutDialog.makeStashOfCurrentBranch()) { + if (!gitClient->executeSynchronousStash(m_repository, + currentBranch + QLatin1String("-AutoStash"))) { + return; + } + } else if (branchCheckoutDialog.moveLocalChangesToNextBranch()) { + if (!gitClient->beginStashScope(m_repository, QLatin1String("Checkout"), NoPrompt)) return; - stashMessage = gitClient->stashInfo(m_repository).stashMessage(); } else if (branchCheckoutDialog.discardLocalChanges()) { - gitClient->synchronousReset(m_repository); + if (!gitClient->synchronousReset(m_repository)) + return; } m_model->checkoutBranch(idx); @@ -214,7 +216,7 @@ void BranchDialog::checkout() } } - if (!stashMessage.isEmpty() && branchCheckoutDialog.moveLocalChangesToNextBranch()) + if (branchCheckoutDialog.moveLocalChangesToNextBranch()) gitClient->endStashScope(m_repository); else if (branchCheckoutDialog.popStashOfNextBranch()) gitClient->synchronousStashRestore(m_repository, stashName, true); |