From c59389ceed6214d85011a91263d935f46a501632 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20D=C3=B6rner?= Date: Thu, 12 Jul 2012 19:01:47 +0100 Subject: Match rules for files below a recursion --- src/svn.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/svn.cpp b/src/svn.cpp index c103728..0be77a4 100644 --- a/src/svn.cpp +++ b/src/svn.cpp @@ -833,8 +833,6 @@ int SvnRevision::recurse(const char *path, const svn_fs_path_change_t *change, apr_hash_this(i, &vkey, NULL, &value); svn_fs_dirent_t *dirent = reinterpret_cast(value); - if (dirent->kind != svn_node_dir) - continue; // not a directory, so can't recurse; skip QByteArray entry = path + QByteArray("/") + dirent->name; QByteArray entryFrom; @@ -861,11 +859,13 @@ int SvnRevision::recurse(const char *path, const svn_fs_path_change_t *change, rev_from, changes, current, *match, matchRules, dirpool) == EXIT_FAILURE) return EXIT_FAILURE; } else { - qDebug() << current << "rev" << revnum - << "did not match any rules; auto-recursing"; - if (recurse(entry, change, entryFrom.isNull() ? 0 : entryFrom.constData(), - matchRules, rev_from, changes, dirpool) == EXIT_FAILURE) - return EXIT_FAILURE; + if (dirent->kind == svn_node_dir) { + qDebug() << current << "rev" << revnum + << "did not match any rules; auto-recursing"; + if (recurse(entry, change, entryFrom.isNull() ? 0 : entryFrom.constData(), + matchRules, rev_from, changes, dirpool) == EXIT_FAILURE) + return EXIT_FAILURE; + } } } -- cgit v1.2.1