From 4c27b0e6e754bc88622ad90c34f7ade48a9cd890 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Wed, 10 Oct 2018 23:48:51 +0300 Subject: [PATCH] Git: Disable merge tool execution for vimdiff vimdiff requires a terminal, which is not supported in Qt Creator. Fixes: QTCREATORBUG-21147 Change-Id: I6168ac9c4a03061a64a1699fca6f39c90df5168b Reviewed-by: Leena Miettinen Reviewed-by: Tobias Hunger --- src/plugins/git/gitclient.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index eb527339baf..5c168cf1bba 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -2944,6 +2944,12 @@ void GitClient::handleMergeConflicts(const QString &workingDir, const QString &c QMessageBox::NoButton, ICore::mainWindow()); QPushButton *mergeToolButton = mergeOrAbort.addButton(tr("Run &Merge Tool"), QMessageBox::AcceptRole); + const QString mergeTool = readConfigValue(workingDir, "merge.tool"); + if (mergeTool.isEmpty() || mergeTool.startsWith("vimdiff")) { + mergeToolButton->setEnabled(false); + mergeToolButton->setToolTip(tr("Only graphical merge tools are supported. " + "Please configure merge.tool.")); + } mergeOrAbort.addButton(QMessageBox::Ignore); if (abortCommand == "rebase") mergeOrAbort.addButton(tr("&Skip"), QMessageBox::RejectRole);