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

github.com/nextcloud/desktop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Kamm <mail@ckamm.de>2019-07-24 17:07:28 +0300
committerKevin Ottens <kevin.ottens@nextcloud.com>2020-12-15 12:58:54 +0300
commit55ee3f440b9877c02b696371dbce29e40e37fca9 (patch)
treeb82e83f123dcf08a5bdc1814088970ae210f72de /src/libsync/discovery.cpp
parente6990bd04e684e8bdc2765d6629ba6ad48fb5b34 (diff)
Vfs: Remove old db record when dehydrating via rename
For #7338
Diffstat (limited to 'src/libsync/discovery.cpp')
-rw-r--r--src/libsync/discovery.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/libsync/discovery.cpp b/src/libsync/discovery.cpp
index 97a5e9aca..8472b819d 100644
--- a/src/libsync/discovery.cpp
+++ b/src/libsync/discovery.cpp
@@ -720,8 +720,10 @@ void ProcessDirectoryJob::processFileAnalyzeLocalInfo(
if (dbEntry._modtime == localEntry.modtime && dbEntry._fileSize == localEntry.size) {
qCInfo(lcDisco) << "Base file was renamed to virtual file:" << item->_file;
item->_direction = SyncFileItem::Down;
- item->_instruction = CSYNC_INSTRUCTION_NEW;
- item->_type = ItemTypeVirtualFile;
+ item->_instruction = CSYNC_INSTRUCTION_SYNC;
+ item->_type = ItemTypeVirtualFileDehydration;
+ addVirtualFileSuffix(item->_file);
+ item->_renameTarget = item->_file;
} else {
qCInfo(lcDisco) << "Virtual file with non-virtual db entry, ignoring:" << item->_file;
item->_instruction = CSYNC_INSTRUCTION_IGNORE;
@@ -1058,8 +1060,10 @@ void ProcessDirectoryJob::processFileFinalize(
}
if (item->_type == ItemTypeVirtualFileDehydration
&& item->_instruction == CSYNC_INSTRUCTION_SYNC) {
- item->_renameTarget = item->_file;
- addVirtualFileSuffix(item->_renameTarget);
+ if (item->_renameTarget.isEmpty()) {
+ item->_renameTarget = item->_file;
+ addVirtualFileSuffix(item->_renameTarget);
+ }
}
}