diff options
author | hjk <hjk@qt.io> | 2021-09-29 14:31:31 +0200 |
---|---|---|
committer | hjk <hjk@qt.io> | 2021-09-29 15:42:32 +0000 |
commit | b5a4d38022122c19744745ccc7ee32d1edfbeae3 (patch) | |
tree | 7ec9b25851e31b7a1abc4ed513b78b77002a4d9b | |
parent | b798fce4654739b59b2ca11e5d30123bfb2ca209 (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.cpp | 2 | ||||
-rw-r--r-- | src/plugins/git/gitsettings.cpp | 7 |
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; |