aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2021-09-29 14:31:31 +0200
committerhjk <hjk@qt.io>2021-09-29 15:42:32 +0000
commitb5a4d38022122c19744745ccc7ee32d1edfbeae3 (patch)
tree7ec9b25851e31b7a1abc4ed513b78b77002a4d9b
parentb798fce4654739b59b2ca11e5d30123bfb2ca209 (diff)
Git: Take Prepend to PATH into account again
Task-number: QTCREATORBUG-26329 Change-Id: If4ac35cc95a47e4f82c6205ad24d8bdc69ddf1af Reviewed-by: Orgad Shaneh <orgads@gmail.com>
-rw-r--r--src/plugins/git/gitclient.cpp2
-rw-r--r--src/plugins/git/gitsettings.cpp7
2 files changed, 8 insertions, 1 deletions
diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp
index c1bbeec724..d3e88b71d3 100644
--- a/src/plugins/git/gitclient.cpp
+++ b/src/plugins/git/gitclient.cpp
@@ -981,7 +981,7 @@ void GitClient::requestReload(const QString &documentId, const QString &source,
QTC_ASSERT(document, return);
GitBaseDiffEditorController *controller = factory(document);
QTC_ASSERT(controller, return);
- controller->setVcsBinary(settings().binaryPath.filePath());
+ controller->setVcsBinary(settings().gitExecutable());
controller->setVcsTimeoutS(settings().timeout.value());
controller->setProcessEnvironment(processEnvironment());
controller->setWorkingDirectory(workingDirectory);
diff --git a/src/plugins/git/gitsettings.cpp b/src/plugins/git/gitsettings.cpp
index a8e4a97785..bf431abe57 100644
--- a/src/plugins/git/gitsettings.cpp
+++ b/src/plugins/git/gitsettings.cpp
@@ -25,6 +25,7 @@
#include "gitsettings.h"
+#include <utils/environment.h>
#include <utils/layoutbuilder.h>
#include <vcsbase/vcsbaseconstants.h>
@@ -140,6 +141,12 @@ FilePath GitSettings::gitExecutable(bool *ok, QString *errorMessage) const
errorMessage->clear();
FilePath binPath = binaryPath.filePath();
+ if (!binPath.isAbsolutePath()) {
+ FilePaths searchPath = binPath.deviceEnvironment().path();
+ if (!path.filePath().isEmpty())
+ searchPath.prepend(path.filePath());
+ binPath = binPath.searchInPath(searchPath);
+ }
if (binPath.isEmpty()) {
if (ok)
*ok = false;