diff --git a/src/libsync/syncengine.cpp b/src/libsync/syncengine.cpp index 806e92c23..bb2a83a25 100644 --- a/src/libsync/syncengine.cpp +++ b/src/libsync/syncengine.cpp @@ -285,9 +285,8 @@ void SyncEngine::conflictRecordMaintenance() // // This happens when the conflicts table is new or when conflict files // are downlaoded but the server doesn't send conflict headers. - for (const auto &path : qAsConst(_seenFiles)) { - if (!Utility::isConflictFile(path)) - continue; + for (const auto &path : qAsConst(_seenConflictFiles)) { + ASSERT(Utility::isConflictFile(path)); auto bapath = path.toUtf8(); if (!conflictRecordPaths.contains(bapath)) { @@ -310,11 +309,8 @@ void SyncEngine::conflictRecordMaintenance() void OCC::SyncEngine::slotItemDiscovered(const OCC::SyncFileItemPtr &item) { - _seenFiles.insert(item->_file); - if (!item->_renameTarget.isEmpty()) { - // Yes, this records both the rename renameTarget and the original so we keep both in case of a rename - _seenFiles.insert(item->_renameTarget); - } + if (Utility::isConflictFile(item->_file)) + _seenConflictFiles.insert(item->_file); if (item->_instruction == CSYNC_INSTRUCTION_UPDATE_METADATA && !item->isDirectory()) { // For directories, metadata-only updates will be done after all their files are propagated. @@ -441,7 +437,7 @@ void SyncEngine::startSync() _hasNoneFiles = false; _hasRemoveFile = false; - _seenFiles.clear(); + _seenConflictFiles.clear(); _progressInfo->reset(); @@ -881,7 +877,7 @@ void SyncEngine::finalize(bool success) // Delete the propagator only after emitting the signal. _propagator.clear(); - _seenFiles.clear(); + _seenConflictFiles.clear(); _uniqueErrors.clear(); _localDiscoveryPaths.clear(); _localDiscoveryStyle = LocalDiscoveryStyle::FilesystemOnly; diff --git a/src/libsync/syncengine.h b/src/libsync/syncengine.h index 4bb1fe122..9e23afe88 100644 --- a/src/libsync/syncengine.h +++ b/src/libsync/syncengine.h @@ -240,8 +240,8 @@ private: QScopedPointer _discoveryPhase; QSharedPointer _propagator; - // List of all files we seen - QSet _seenFiles; + // List of all files with conflicts + QSet _seenConflictFiles; QScopedPointer _progressInfo;