Do not check for existence of the binary, breaks on Windows
due to .exe (and potentially paths). Use waitForStarted().
On this occasion, kill on timeout in case of password prompts.
This commit is contained in:
Friedemann Kleint
2009-05-29 11:34:06 +02:00
parent d472ec9a4c
commit 07e589ef8e

View File

@@ -104,10 +104,6 @@ void GitCommand::execute()
if (m_jobs.empty())
return;
if(!QFileInfo(m_binaryPath).exists()){
emit errorText(QLatin1String("Error: Git not found.")+m_binaryPath);
return;
}
// For some reason QtConcurrent::run() only works on this
QFuture<void> task = QtConcurrent::run(this, &GitCommand::run);
const QString taskName = QLatin1String("Git ") + m_jobs.front().arguments.at(0);
@@ -137,8 +133,15 @@ void GitCommand::run()
qDebug() << "GitCommand::run" << j << '/' << count << m_jobs.at(j).arguments;
process.start(m_binaryPath, m_jobs.at(j).arguments);
if(!process.waitForStarted()) {
ok = false;
error += QString::fromLatin1("Error: \"%1\" could not be started: %2").arg(m_binaryPath, process.errorString());
break;
}
process.closeWriteChannel();
if (!process.waitForFinished(m_jobs.at(j).timeout * 1000)) {
process.terminate();
ok = false;
error += QLatin1String("Error: Git timed out");
break;