From 8abe8e6f52eebe81d429a27001687607592e114f Mon Sep 17 00:00:00 2001 From: Matthieu Gallien Date: Thu, 10 Oct 2024 14:24:35 +0200 Subject: [PATCH] better logs tounderstand when a folder is local scanned should hopefully allows to understand when local file system discovery is done or omitted Signed-off-by: Matthieu Gallien --- src/libsync/syncengine.cpp | 47 +++++++++++++++++++++++++++++--------- 1 file changed, 36 insertions(+), 11 deletions(-) diff --git a/src/libsync/syncengine.cpp b/src/libsync/syncengine.cpp index f53e43868..ac48c0be2 100644 --- a/src/libsync/syncengine.cpp +++ b/src/libsync/syncengine.cpp @@ -648,7 +648,6 @@ void SyncEngine::startSync() _discoveryPhase->_syncOptions = _syncOptions; _discoveryPhase->_shouldDiscoverLocaly = [this](const QString &path) { const auto result = shouldDiscoverLocally(path); - qCDebug(lcEngine) << "shouldDiscoverLocaly" << path << (result ? "true" : "false"); return result; }; _discoveryPhase->setSelectiveSyncBlackList(selectiveSyncBlackList); @@ -1213,6 +1212,13 @@ void SyncEngine::setLocalDiscoveryOptions(LocalDiscoveryStyle style, std::set QString { + first += ", " + second; + return first; + }); + + qCInfo(lcEngine()) << "paths to discover locally" << allPaths; + // Normalize to make sure that no path is a contained in another. // Note: for simplicity, this code consider anything less than '/' as a path separator, so for // example, this will remove "foo.bar" if "foo" is in the list. This will mean we might have @@ -1242,8 +1248,12 @@ const SyncEngine::SingleItemDiscoveryOptions &SyncEngine::singleItemDiscoveryOpt bool SyncEngine::shouldDiscoverLocally(const QString &path) const { - if (_localDiscoveryStyle == LocalDiscoveryStyle::FilesystemOnly) - return true; + auto result = false; + + if (_localDiscoveryStyle == LocalDiscoveryStyle::FilesystemOnly) { + result = true; + return result; + } // The intention is that if "A/X" is in _localDiscoveryPaths: // - parent folders like "/", "A" will be discovered (to make sure the discovery reaches the @@ -1257,25 +1267,40 @@ bool SyncEngine::shouldDiscoverLocally(const QString &path) const if (it == _localDiscoveryPaths.end() || !it->startsWith(path)) { // Maybe a subfolder of something in the list? if (it != _localDiscoveryPaths.begin() && path.startsWith(*(--it))) { - return it->endsWith('/') || (path.size() > it->size() && path.at(it->size()) <= '/'); + result = it->endsWith('/') || (path.size() > it->size() && path.at(it->size()) <= '/'); + if (!result) { + qCInfo(lcEngine()) << path << "no local discovery needed"; + } + return result; } - return false; + result = false; + qCInfo(lcEngine()) << path << "no local discovery needed"; + return result; } // maybe an exact match or an empty path? - if (it->size() == path.size() || path.isEmpty()) + if (it->size() == path.size() || path.isEmpty()) { return true; + } // Maybe a parent folder of something in the list? // check for a prefix + / match forever { - if (it->size() > path.size() && it->at(path.size()) == '/') - return true; + if (it->size() > path.size() && it->at(path.size()) == '/') { + result = true; + return result; + } + ++it; - if (it == _localDiscoveryPaths.end() || !it->startsWith(path)) - return false; + if (it == _localDiscoveryPaths.end() || !it->startsWith(path)) { + result = false; + qCInfo(lcEngine()) << path << "no local discovery needed"; + return result; + } } - return false; + + qCInfo(lcEngine()) << path << "no local discovery needed"; + return result; } void SyncEngine::wipeVirtualFiles(const QString &localPath, SyncJournalDb &journal, Vfs &vfs)