summaryrefslogtreecommitdiff
path: root/src/plugins/git/branchdialog.cpp
diff options
context:
space:
mode:
authorOrgad Shaneh <orgad.shaneh@audiocodes.com>2013-12-02 23:28:58 +0200
committerOrgad Shaneh <orgads@gmail.com>2013-12-09 11:14:02 +0100
commit4a5af14b7f1260f2a4d2bb7c4bd3883fc5baf524 (patch)
tree6112b46183a30818c0cb6e0df0de8f2a971266a3 /src/plugins/git/branchdialog.cpp
parent0c0c1cd58ff0af2371ee7e5ead9b4a412e27f90e (diff)
downloadqt-creator-4a5af14b7f1260f2a4d2bb7c4bd3883fc5baf524.tar.gz
Git: Enable choosing non-fast-forward merge
Change-Id: I5972489d06637616953bd0d93a3b65c4d9918377 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com> Reviewed-by: Tobias Hunger <tobias.hunger@digia.com> Reviewed-by: Petar Perisin <petar.perisin@gmail.com>
Diffstat (limited to 'src/plugins/git/branchdialog.cpp')
-rw-r--r--src/plugins/git/branchdialog.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/plugins/git/branchdialog.cpp b/src/plugins/git/branchdialog.cpp
index 9fadf16934..09e21ba2c8 100644
--- a/src/plugins/git/branchdialog.cpp
+++ b/src/plugins/git/branchdialog.cpp
@@ -38,11 +38,14 @@
#include "stashdialog.h" // Label helpers
#include <utils/qtcassert.h>
+#include <utils/execmenu.h>
#include <vcsbase/vcsbaseoutputwindow.h>
+#include <QAction>
#include <QItemSelectionModel>
#include <QMessageBox>
#include <QList>
+#include <QMenu>
#include <QDebug>
@@ -321,8 +324,18 @@ void BranchDialog::merge()
const QString branch = m_model->fullName(idx, true);
GitClient *client = GitPlugin::instance()->gitClient();
+ bool allowFastForward = true;
+ if (client->isFastForwardMerge(m_repository, branch)) {
+ QMenu popup;
+ QAction *fastForward = popup.addAction(tr("Fast-Forward"));
+ popup.addAction(tr("No Fast-Forward"));
+ QAction *chosen = Utils::execMenuAtWidget(&popup, m_ui->mergeButton);
+ if (!chosen)
+ return;
+ allowFastForward = (chosen == fastForward);
+ }
if (client->beginStashScope(m_repository, QLatin1String("merge"), AllowUnstashed))
- client->synchronousMerge(m_repository, branch);
+ client->synchronousMerge(m_repository, branch, allowFastForward);
}
void BranchDialog::rebase()