Git: Take Prepend to PATH into account again

Task-number: QTCREATORBUG-26329
Change-Id: If4ac35cc95a47e4f82c6205ad24d8bdc69ddf1af
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
hjk
2021-09-29 14:31:31 +02:00
parent b798fce465
commit b5a4d38022
2 changed files with 8 additions and 1 deletions

View File

@@ -981,7 +981,7 @@ void GitClient::requestReload(const QString &documentId, const QString &source,
QTC_ASSERT(document, return); QTC_ASSERT(document, return);
GitBaseDiffEditorController *controller = factory(document); GitBaseDiffEditorController *controller = factory(document);
QTC_ASSERT(controller, return); QTC_ASSERT(controller, return);
controller->setVcsBinary(settings().binaryPath.filePath()); controller->setVcsBinary(settings().gitExecutable());
controller->setVcsTimeoutS(settings().timeout.value()); controller->setVcsTimeoutS(settings().timeout.value());
controller->setProcessEnvironment(processEnvironment()); controller->setProcessEnvironment(processEnvironment());
controller->setWorkingDirectory(workingDirectory); controller->setWorkingDirectory(workingDirectory);

View File

@@ -25,6 +25,7 @@
#include "gitsettings.h" #include "gitsettings.h"
#include <utils/environment.h>
#include <utils/layoutbuilder.h> #include <utils/layoutbuilder.h>
#include <vcsbase/vcsbaseconstants.h> #include <vcsbase/vcsbaseconstants.h>
@@ -140,6 +141,12 @@ FilePath GitSettings::gitExecutable(bool *ok, QString *errorMessage) const
errorMessage->clear(); errorMessage->clear();
FilePath binPath = binaryPath.filePath(); 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 (binPath.isEmpty()) {
if (ok) if (ok)
*ok = false; *ok = false;