aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 225ae5a..a18c050 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -139,6 +139,7 @@ static const CommandLineOption options[] = {
{"--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"},
{"--svn-branches", "Use the contents of SVN when creating branches, Note: SVN tags are branches as well"},
+ {"--skip-revisions REVISION[,REVISION]", "any svn revisions you want to completely ignore"},
{"-h, --help", "show help"},
{"-v, --version", "show version"},
CommandLineLastOption
@@ -239,6 +240,14 @@ int main(int argc, char **argv)
if (min_rev < resume_from)
qDebug() << "skipping revisions" << min_rev << "to" << resume_from - 1 << "as requested";
+ QSet<int> skiprevs;
+ if (args->contains("skip-revisions")) {
+ foreach(const QString skiprev, args->optionArgument(QLatin1String("skip-revisions")).split(',')) {
+ skiprevs << skiprev.toInt();
+ }
+ qDebug() << "skipping" << skiprevs.size() << "specific revisions as requested";
+ }
+
if (resume_from)
min_rev = resume_from;
@@ -259,7 +268,14 @@ int main(int argc, char **argv)
bool errors = false;
QSet<int> revisions = loadRevisionsFile(args->optionArgument(QLatin1String("revisions-file")), svn);
const bool filerRevisions = !revisions.isEmpty();
+ const bool skipRevisions = !skiprevs.isEmpty();
for (int i = min_rev; i <= max_rev; ++i) {
+ if(skipRevisions) {
+ if( skiprevs.contains(i) ) {
+ printf("Skipping revision %d\n", i);
+ continue;
+ }
+ }
if(filerRevisions) {
if( !revisions.contains(i) ) {
printf(".");