]> andersk Git - svn-all-fast-export.git/blobdiff - src/main.cpp
Support an upper limit of revision numbers
[svn-all-fast-export.git] / src / main.cpp
index 4415bca5ec8a4b4eec7e1f0525c94d7b0cf70a6c..bf7af7648ddc9bc06a2c165d76f396c80b43a671 100644 (file)
@@ -20,6 +20,7 @@
 
 #include <stdio.h>
 
+#include "options.h"
 #include "ruleparser.h"
 #include "repository.h"
 #include "svn.h"
@@ -28,28 +29,35 @@ int main(int argc, char **argv)
 {
     QCoreApplication app(argc, argv);
 
-    QStringList arguments = app.arguments();
-    if (arguments.count() < 3) {
-        printf("Usage: svn-all-fast-export configfile path-to-svn\n");
-        return 0;
-    }
+    Options options;
+    options.parseArguments(app.arguments());
 
     // Load the configuration
-    Rules rules(arguments.at(1));
+    Rules rules(options.ruleFile);
     rules.load();
 
+    int min_rev = options.options.value("resume-from").toInt();
+    int max_rev = options.options.value("max-rev").toInt();
+    if (min_rev < 1)
+        min_rev = 1;
+
     // create the repository list
     QHash<QString, Repository *> repositories;
-    foreach (Rules::Repository rule, rules.repositories())
-        repositories.insert(rule.name, new Repository(rule));
+    foreach (Rules::Repository rule, rules.repositories()) {
+        Repository *repo = new Repository(rule);
+        if (min_rev > 1)
+            repo->reloadBranches();
+        repositories.insert(rule.name, repo);
+    }
 
     Svn::initialize();
-    Svn svn(arguments.at(2));
+    Svn svn(options.pathToRepository);
     svn.setMatchRules(rules.matchRules());
     svn.setRepositories(repositories);
 
-    int max_rev = svn.youngestRevision();
-    for (int i = 1; i <= max_rev; ++i)
+    if (max_rev < 1)
+        max_rev = svn.youngestRevision();
+    for (int i = min_rev; i <= max_rev; ++i)
         if (!svn.exportRevision(i))
             break;
 
This page took 0.374638 seconds and 4 git commands to generate.