diff --git a/src/main.cpp b/src/main.cpp index 510d743..50c88db 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -135,6 +135,7 @@ static const CommandLineOption options[] = { {"--resume-from revision", "start importing at svn revision number"}, {"--max-rev revision", "stop importing at svn revision number"}, {"--dry-run", "don't actually write anything"}, + {"--create-dump", "don't create the repository but a dump file suitable for piping into fast-import"}, {"--debug-rules", "print what rule is being used for each file"}, {"--commit-interval NUMBER", "if passed the cache will be flushed to git every NUMBER of commits"}, {"--stats", "after a run print some statistics about the rules"}, diff --git a/src/repository.cpp b/src/repository.cpp index 03bdfc8..b14cfa6 100644 --- a/src/repository.cpp +++ b/src/repository.cpp @@ -262,7 +262,7 @@ FastImportRepository::FastImportRepository(const Rules::Repository &rule) branches["master"].created = 1; fastImport.setWorkingDirectory(name); - if (!CommandLineParser::instance()->contains("dry-run")) { + if (!CommandLineParser::instance()->contains("dry-run") && !CommandLineParser::instance()->contains("create-dump")) { if (!QDir(name).exists()) { // repo doesn't exist yet. qDebug() << "Creating new repository" << name; QDir::current().mkpath(name); @@ -291,7 +291,10 @@ FastImportRepository::FastImportRepository(const Rules::Repository &rule) static QString logFileName(QString name) { name.replace('/', '_'); - name.prepend("log-"); + if (CommandLineParser::instance()->contains("create-dump")) + name.append(".fi"); + else + name.prepend("log-"); return name; } @@ -730,7 +733,7 @@ void FastImportRepository::startFastImport() fastImport.setStandardOutputFile(logFileName(name), QIODevice::Append); fastImport.setProcessChannelMode(QProcess::MergedChannels); - if (!CommandLineParser::instance()->contains("dry-run")) { + if (!CommandLineParser::instance()->contains("dry-run") && !CommandLineParser::instance()->contains("create-dump")) { fastImport.start("git", QStringList() << "fast-import" << marksOptions); } else { fastImport.start("/bin/cat", QStringList());