avoid wrong tracking of renamed folders during discovery
authorMatthieu Gallien <matthieu.gallien@nextcloud.com>
Wed, 11 Sep 2024 15:14:11 +0000 (17:14 +0200)
committerMatthieu Gallien <matthieu_gallien@yahoo.fr>
Thu, 12 Sep 2024 08:15:16 +0000 (10:15 +0200)
ensure server rename operations are tracked as server rename operations

ensure local rename are tracked as local rename operations

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
src/libsync/discovery.cpp

index 468d1fae467c249818f51c5f5adc70eeffde236f..ada2e8a0023e60c24d446a9a95d00d5b0debc9e1 100644 (file)
@@ -1727,9 +1727,11 @@ void ProcessDirectoryJob::processFileFinalize(
         ASSERT(_dirItem && _dirItem->_instruction == CSYNC_INSTRUCTION_RENAME);
         // This is because otherwise subitems are not updated!  (ideally renaming a directory could
         // update the database for all items!  See PropagateDirectory::slotSubJobsFinished)
-        const auto adjustedOriginalPath = _discoveryData->adjustRenamedPath(path._original, SyncFileItem::Down);
-        Q_UNUSED(adjustedOriginalPath)
-        _discoveryData->_renamedItemsLocal.insert(path._original, path._target);
+        if (_dirItem->_direction == SyncFileItem::Direction::Down) {
+            _discoveryData->_renamedItemsRemote.insert(path._original, path._target);
+        } else {
+            _discoveryData->_renamedItemsLocal.insert(path._original, path._target);
+        }
         item->_instruction = CSYNC_INSTRUCTION_RENAME;
         item->_renameTarget = path._target;
         item->_direction = _dirItem->_direction;