avoid wrong tracking of renamed folders during discovery

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>
This commit is contained in:
Matthieu Gallien 2024-09-11 17:14:11 +02:00 committed by Matthieu Gallien
parent 18bb41b410
commit 092175e23a

View 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;