From: Thiago Macieira Date: Fri, 28 Dec 2007 11:50:14 +0000 (+0100) Subject: Don't start the git-fast-import process twice. And make it log its X-Git-Url: http://andersk.mit.edu/gitweb/svn-all-fast-export.git/commitdiff_plain/298d7968c1bd6381bd80a41c6bfea37d42c73a6a?hp=392c009ad5ee4276a7ced33257a0b15f56bb5a4b Don't start the git-fast-import process twice. And make it log its output to a file rather than garble the output of 10-15 process in stdout. --- diff --git a/src/repository.cpp b/src/repository.cpp index 21641e7..63252b5 100644 --- a/src/repository.cpp +++ b/src/repository.cpp @@ -20,7 +20,7 @@ #include Repository::Repository(const Rules::Repository &rule) - : name(rule.name) + : name(rule.name), processHasStarted(false) { foreach (Rules::Repository::Branch branchRule, rule.branches) { Branch branch; @@ -129,14 +129,20 @@ Repository::Transaction *Repository::newTransaction(const QString &branch, const void Repository::startFastImport() { if (fastImport.state() == QProcess::NotRunning) { + if (processHasStarted) + qFatal("git-fast-import has been started once and crashed?"); + processHasStarted = true; + // start the process + QString outputFile = name; + outputFile.replace('/', '_'); + outputFile.prepend("log-"); + fastImport.setStandardOutputFile(outputFile, QIODevice::Append); + #ifndef DRY_RUN fastImport.setProcessChannelMode(QProcess::ForwardedChannels); fastImport.start("git-fast-import", QStringList()); #else - QString outputFile = name; - outputFile.replace('/', '_'); - fastImport.setStandardOutputFile(outputFile, QIODevice::Append); fastImport.start("/bin/cat", QStringList()); #endif }