aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorThiago Macieira <thiago@cassini.local.lan>2007-12-24 21:45:58 -0200
committerThiago Macieira <thiago@cassini.local.lan>2007-12-24 21:45:58 -0200
commit1602441997715867882c9ff2102cb13bcfd241ee (patch)
tree299f4108532dcb226b10ecf427ab579708a676df /src
parentb019fed71c84032e3f21fa219b6b118e6dde2928 (diff)
downloadsvn2git-1602441997715867882c9ff2102cb13bcfd241ee.tar
svn2git-1602441997715867882c9ff2102cb13bcfd241ee.tar.gz
svn2git-1602441997715867882c9ff2102cb13bcfd241ee.tar.bz2
svn2git-1602441997715867882c9ff2102cb13bcfd241ee.tar.xz
svn2git-1602441997715867882c9ff2102cb13bcfd241ee.zip
Remove the recurse rule
Diffstat (limited to 'src')
-rw-r--r--src/ruleparser.cpp2
-rw-r--r--src/ruleparser.h3
-rw-r--r--src/svn.cpp33
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 &current,
@@ -175,8 +175,6 @@ findMatchRule(const MatchRuleList &matchRules, int revnum, const QString &curren
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 &current, 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,