From 1602441997715867882c9ff2102cb13bcfd241ee Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Mon, 24 Dec 2007 21:45:58 -0200 Subject: [PATCH] Remove the recurse rule --- src/ruleparser.cpp | 2 -- src/ruleparser.h | 3 +-- src/svn.cpp | 33 ++++++++++----------------------- 3 files changed, 11 insertions(+), 27 deletions(-) diff --git a/src/ruleparser.cpp b/src/ruleparser.cpp index 0f675dd..e6ba7b5 100644 --- a/src/ruleparser.cpp +++ b/src/ruleparser.cpp @@ -104,8 +104,6 @@ void Rules::load() match.action = Match::Export; else if (action == "ignore") match.action = Match::Ignore; - else if (action == "recurse") - match.action = Match::Recurse; else qFatal("Invalid action \"%s\" on line %d", qPrintable(action), lineNumber); continue; diff --git a/src/ruleparser.h b/src/ruleparser.h index 9525f14..d70a39b 100644 --- a/src/ruleparser.h +++ b/src/ruleparser.h @@ -50,8 +50,7 @@ public: enum Action { Ignore, - Export, - Recurse + Export } action; Match() : minRevision(-1), maxRevision(-1), lineNumber(0), action(Ignore) { } diff --git a/src/svn.cpp b/src/svn.cpp index 615f9e1..552e506 100644 --- a/src/svn.cpp +++ b/src/svn.cpp @@ -160,7 +160,7 @@ int SvnPrivate::openRepository(const QString &pathToRepository) return EXIT_SUCCESS; } -enum RuleType { AnyRule = 0, NoIgnoreRule = 0x01, NoRecurseRule = 0x02 }; +enum RuleType { AnyRule = 0, NoIgnoreRule = 0x01 }; static MatchRuleList::ConstIterator findMatchRule(const MatchRuleList &matchRules, int revnum, const QString ¤t, @@ -175,8 +175,6 @@ findMatchRule(const MatchRuleList &matchRules, int revnum, const QString ¤ continue; if (it->action == Rules::Match::Ignore && ruleMask & NoIgnoreRule) continue; - if (it->action == Rules::Match::Recurse && ruleMask & NoRecurseRule) - continue; if (it->rx.indexIn(current) == 0) return it; } @@ -473,25 +471,7 @@ int SvnRevision::exportEntry(const char *key, const svn_fs_path_change_t *change MatchRuleList::ConstIterator match = findMatchRule(matchRules, revnum, current); if (match != matchRules.constEnd()) { const Rules::Match &rule = *match; - switch (rule.action) { - case Rules::Match::Ignore: - // ignore rule - qDebug() << " " << qPrintable(current) << "rev" << revnum - << "-> ignored (rule" << rule << ")"; - return EXIT_SUCCESS; - - case Rules::Match::Recurse: - // recurse rule - if (is_dir) - return recurse(key, change, path_from, rev_from, revpool); - if (change->change_kind != svn_fs_path_change_delete) - qWarning() << " recurse rule" << rule - << "applied to non-directory:" << qPrintable(current); - return EXIT_SUCCESS; - - case Rules::Match::Export: - return exportInternal(key, change, path_from, rev_from, current, rule); - } + return exportInternal(key, change, path_from, rev_from, current, rule); } if (is_dir && path_from != NULL) { @@ -513,6 +493,13 @@ int SvnRevision::exportInternal(const char *key, const svn_fs_path_change_t *cha const char *path_from, svn_revnum_t rev_from, const QString ¤t, const Rules::Match &rule) { + if (rule.action == Rules::Match::Ignore) { + // ignore rule + qDebug() << " " << qPrintable(current) << "rev" << revnum + << "-> ignored (rule" << rule << ")"; + return EXIT_SUCCESS; + } + QString svnprefix, repository, branch, path; splitPathName(rule, current, &svnprefix, &repository, &branch, &path); @@ -524,7 +511,7 @@ int SvnRevision::exportInternal(const char *key, const svn_fs_path_change_t *cha if (path.isEmpty() && path_from != NULL) { QString previous = QString::fromUtf8(path_from) + '/'; MatchRuleList::ConstIterator prevmatch = - findMatchRule(matchRules, rev_from, previous, NoRecurseRule | NoIgnoreRule); + findMatchRule(matchRules, rev_from, previous, NoIgnoreRule); if (prevmatch != matchRules.constEnd()) { QString prevsvnprefix, prevrepository, prevbranch, prevpath; splitPathName(*prevmatch, previous, &prevsvnprefix, &prevrepository, -- 2.45.0