diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index c8062134dad286c458a9ca9dfd2ea78d0465eba4..9b045178bd233142f4a9f906ad64fdd4825dc552 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -2329,6 +2329,9 @@ QString GitClient::gitVersionString(bool silent, QString *errorMessage) const // determine version as '(major << 16) + (minor << 8) + patch' or 0. unsigned GitClient::synchronousGitVersion(bool silent, QString *errorMessage) const { + if (gitBinaryPath().isEmpty()) + return 0; + // run git --version QByteArray outputText; QByteArray errorText; diff --git a/src/plugins/vcsbase/vcsbaseplugin.cpp b/src/plugins/vcsbase/vcsbaseplugin.cpp index 7af504a7f0f288e2fadf87a69f26f4108a6986e7..4d137dec8d95350527a4d53c76ff50ef710a7eaf 100644 --- a/src/plugins/vcsbase/vcsbaseplugin.cpp +++ b/src/plugins/vcsbase/vcsbaseplugin.cpp @@ -793,6 +793,12 @@ static SynchronousProcessResponse runVcsFullySynchronously(const QString &workin unsigned flags, QTextCodec *outputCodec = 0) { + SynchronousProcessResponse response; + if (binary.isEmpty()) { + response.result = SynchronousProcessResponse::StartFailed; + return response; + } + VcsBase::VcsBaseOutputWindow *outputWindow = VcsBase::VcsBaseOutputWindow::instance(); // Set up process @@ -809,7 +815,6 @@ static SynchronousProcessResponse runVcsFullySynchronously(const QString &workin // Start process->start(binary, arguments, QIODevice::ReadOnly); process->closeWriteChannel(); - SynchronousProcessResponse response; if (!process->waitForStarted()) { response.result = SynchronousProcessResponse::StartFailed; return response; @@ -869,6 +874,13 @@ SynchronousProcessResponse VcsBasePlugin::runVcs(const QString &workingDir, unsigned flags, QTextCodec *outputCodec) { + SynchronousProcessResponse response; + + if (binary.isEmpty()) { + response.result = SynchronousProcessResponse::StartFailed; + return response; + } + VcsBase::VcsBaseOutputWindow *outputWindow = VcsBase::VcsBaseOutputWindow::instance(); if (!(flags & SuppressCommandLogging)) @@ -901,8 +913,6 @@ SynchronousProcessResponse VcsBasePlugin::runVcs(const QString &workingDir, VcsBase::VcsBasePlugin::setProcessEnvironment(&env, (flags & ForceCLocale)); - SynchronousProcessResponse response; - if (flags & FullySynchronously) { response = runVcsFullySynchronously(workingDir, binary, arguments, timeOutMS, env, flags, outputCodec); @@ -964,6 +974,9 @@ bool VcsBasePlugin::runFullySynchronous(const QString &workingDirectory, int timeoutMS, bool logCommandToWindow) { + if (binary.isEmpty()) + return false; + VcsBase::VcsBaseOutputWindow *outputWindow = VcsBase::VcsBaseOutputWindow::instance(); if (logCommandToWindow)