diff options
author | Christian Kamm <mail@ckamm.de> | 2019-07-24 17:07:28 +0300 |
---|---|---|
committer | Kevin Ottens <kevin.ottens@nextcloud.com> | 2020-12-15 12:58:54 +0300 |
commit | 55ee3f440b9877c02b696371dbce29e40e37fca9 (patch) | |
tree | b82e83f123dcf08a5bdc1814088970ae210f72de /src/libsync/discovery.cpp | |
parent | e6990bd04e684e8bdc2765d6629ba6ad48fb5b34 (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.cpp | 12 |
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); + } } } |