Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/owncloud/client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/libsync/owncloudpropagator.cpp')
-rw-r--r--src/libsync/owncloudpropagator.cpp13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/libsync/owncloudpropagator.cpp b/src/libsync/owncloudpropagator.cpp
index 1981fd7e7..f50201020 100644
--- a/src/libsync/owncloudpropagator.cpp
+++ b/src/libsync/owncloudpropagator.cpp
@@ -967,14 +967,11 @@ void PropagateDirectory::slotFirstJobFinished(SyncFileItem::Status status)
void PropagateDirectory::slotSubJobsFinished(SyncFileItem::Status status)
{
if (!_item->isEmpty() && status == SyncFileItem::Success) {
- if (!_item->_renameTarget.isEmpty()) {
- if (_item->_instruction == CSYNC_INSTRUCTION_RENAME
- && _item->_originalFile != _item->_renameTarget) {
- // Remove the stale entries from the database.
- propagator()->_journal->deleteFileRecord(_item->_originalFile, true);
- }
-
- _item->_file = _item->_renameTarget;
+ // If a directory is renamed, recursively delete any stale items
+ // that may still exist below the old path.
+ if (_item->_instruction == CSYNC_INSTRUCTION_RENAME
+ && _item->_originalFile != _item->_renameTarget) {
+ propagator()->_journal->deleteFileRecord(_item->_originalFile, true);
}
// For new directories we always want to update the etag once