Vfs: Hydrating a virtual is SYNC not NEW #7101

Previously it'd be NEW(ItemTypeFile), but now it has changed to be
SYNC(ItemTypeVirtualFileDownload) which allows better classification.
This commit is contained in:
Christian Kamm 2019-03-25 10:53:13 +01:00 committed by Kevin Ottens
parent e0c8acc195
commit 3f55f9302e
No known key found for this signature in database
GPG key ID: 074BBBCB8DECC9E2
4 changed files with 12 additions and 12 deletions

View file

@ -420,9 +420,9 @@ void Folder::createGuiLog(const QString &filename, LogStatus status, int count,
break; break;
case LogStatusNew: case LogStatusNew:
if (count > 1) { if (count > 1) {
text = tr("%1 and %n other file(s) are new.", "", count - 1).arg(file); text = tr("%1 and %n other file(s) have been added.", "", count - 1).arg(file);
} else { } else {
text = tr("%1 is new.", "%1 names a file.").arg(file); text = tr("%1 has been added.", "%1 names a file.").arg(file);
} }
break; break;
case LogStatusUpdated: case LogStatusUpdated:

View file

@ -332,7 +332,7 @@ void ProcessDirectoryJob::processFile(PathTuple path,
|| localEntry.type == ItemTypeVirtualFileDownload) || localEntry.type == ItemTypeVirtualFileDownload)
&& (localEntry.isValid() || _queryLocal == ParentNotChanged)) { && (localEntry.isValid() || _queryLocal == ParentNotChanged)) {
item->_direction = SyncFileItem::Down; item->_direction = SyncFileItem::Down;
item->_instruction = CSYNC_INSTRUCTION_NEW; item->_instruction = CSYNC_INSTRUCTION_SYNC;
item->_type = ItemTypeVirtualFileDownload; item->_type = ItemTypeVirtualFileDownload;
} }
@ -381,7 +381,7 @@ void ProcessDirectoryJob::processFileAnalyzeRemoteInfo(
// The above check for the localEntry existing is important. Otherwise it breaks // The above check for the localEntry existing is important. Otherwise it breaks
// the case where a file is moved and simultaneously tagged for download in the db. // the case where a file is moved and simultaneously tagged for download in the db.
item->_direction = SyncFileItem::Down; item->_direction = SyncFileItem::Down;
item->_instruction = CSYNC_INSTRUCTION_NEW; item->_instruction = CSYNC_INSTRUCTION_SYNC;
item->_type = ItemTypeVirtualFileDownload; item->_type = ItemTypeVirtualFileDownload;
} else if (dbEntry._etag != serverEntry.etag) { } else if (dbEntry._etag != serverEntry.etag) {
item->_direction = SyncFileItem::Down; item->_direction = SyncFileItem::Down;

View file

@ -1020,9 +1020,6 @@ void PropagateDownloadFile::downloadFinished()
propagator()->_journal->setConflictRecord(_conflictRecord); propagator()->_journal->setConflictRecord(_conflictRecord);
if (_item->_type == ItemTypeVirtualFileDownload) { if (_item->_type == ItemTypeVirtualFileDownload) {
// A downloaded virtual file becomes normal
_item->_type = ItemTypeFile;
// If the virtual file used to have a different name and db // If the virtual file used to have a different name and db
// entry, wipe both now. // entry, wipe both now.
auto vfs = propagator()->syncOptions()._vfs; auto vfs = propagator()->syncOptions()._vfs;

View file

@ -356,9 +356,11 @@ private slots:
fakeFolder.localModifier().insert("A/a6"); fakeFolder.localModifier().insert("A/a6");
fakeFolder.localModifier().remove("A/a6.nextcloud"); fakeFolder.localModifier().remove("A/a6.nextcloud");
QVERIFY(fakeFolder.syncOnce()); QVERIFY(fakeFolder.syncOnce());
QVERIFY(itemInstruction(completeSpy, "A/a1", CSYNC_INSTRUCTION_NEW)); QVERIFY(itemInstruction(completeSpy, "A/a1", CSYNC_INSTRUCTION_SYNC));
QCOMPARE(findItem(completeSpy, "A/a1")->_type, ItemTypeVirtualFileDownload);
QVERIFY(itemInstruction(completeSpy, "A/a1.nextcloud", CSYNC_INSTRUCTION_NONE)); QVERIFY(itemInstruction(completeSpy, "A/a1.nextcloud", CSYNC_INSTRUCTION_NONE));
QVERIFY(itemInstruction(completeSpy, "A/a2", CSYNC_INSTRUCTION_NEW)); QVERIFY(itemInstruction(completeSpy, "A/a2", CSYNC_INSTRUCTION_SYNC));
QCOMPARE(findItem(completeSpy, "A/a2")->_type, ItemTypeVirtualFileDownload);
QVERIFY(itemInstruction(completeSpy, "A/a2.nextcloud", CSYNC_INSTRUCTION_NONE)); QVERIFY(itemInstruction(completeSpy, "A/a2.nextcloud", CSYNC_INSTRUCTION_NONE));
QVERIFY(itemInstruction(completeSpy, "A/a3.nextcloud", CSYNC_INSTRUCTION_REMOVE)); QVERIFY(itemInstruction(completeSpy, "A/a3.nextcloud", CSYNC_INSTRUCTION_REMOVE));
QVERIFY(itemInstruction(completeSpy, "A/a4m", CSYNC_INSTRUCTION_NEW)); QVERIFY(itemInstruction(completeSpy, "A/a4m", CSYNC_INSTRUCTION_NEW));
@ -405,7 +407,7 @@ private slots:
triggerDownload(fakeFolder, "A/a1"); triggerDownload(fakeFolder, "A/a1");
fakeFolder.serverErrorPaths().append("A/a1", 500); fakeFolder.serverErrorPaths().append("A/a1", 500);
QVERIFY(!fakeFolder.syncOnce()); QVERIFY(!fakeFolder.syncOnce());
QVERIFY(itemInstruction(completeSpy, "A/a1", CSYNC_INSTRUCTION_NEW)); QVERIFY(itemInstruction(completeSpy, "A/a1", CSYNC_INSTRUCTION_SYNC));
QVERIFY(itemInstruction(completeSpy, "A/a1.nextcloud", CSYNC_INSTRUCTION_NONE)); QVERIFY(itemInstruction(completeSpy, "A/a1.nextcloud", CSYNC_INSTRUCTION_NONE));
QVERIFY(fakeFolder.currentLocalState().find("A/a1.nextcloud")); QVERIFY(fakeFolder.currentLocalState().find("A/a1.nextcloud"));
QVERIFY(!fakeFolder.currentLocalState().find("A/a1")); QVERIFY(!fakeFolder.currentLocalState().find("A/a1"));
@ -415,7 +417,7 @@ private slots:
fakeFolder.serverErrorPaths().clear(); fakeFolder.serverErrorPaths().clear();
QVERIFY(fakeFolder.syncOnce()); QVERIFY(fakeFolder.syncOnce());
QVERIFY(itemInstruction(completeSpy, "A/a1", CSYNC_INSTRUCTION_NEW)); QVERIFY(itemInstruction(completeSpy, "A/a1", CSYNC_INSTRUCTION_SYNC));
QVERIFY(itemInstruction(completeSpy, "A/a1.nextcloud", CSYNC_INSTRUCTION_NONE)); QVERIFY(itemInstruction(completeSpy, "A/a1.nextcloud", CSYNC_INSTRUCTION_NONE));
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState()); QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
QCOMPARE(dbRecord(fakeFolder, "A/a1")._type, ItemTypeFile); QCOMPARE(dbRecord(fakeFolder, "A/a1")._type, ItemTypeFile);
@ -622,7 +624,8 @@ private slots:
QVERIFY(itemInstruction(completeSpy, "renamed2.nextcloud", CSYNC_INSTRUCTION_RENAME)); QVERIFY(itemInstruction(completeSpy, "renamed2.nextcloud", CSYNC_INSTRUCTION_RENAME));
QVERIFY(dbRecord(fakeFolder, "renamed2.nextcloud")._type == ItemTypeVirtualFile); QVERIFY(dbRecord(fakeFolder, "renamed2.nextcloud")._type == ItemTypeVirtualFile);
QVERIFY(itemInstruction(completeSpy, "file3", CSYNC_INSTRUCTION_NEW)); QVERIFY(itemInstruction(completeSpy, "file3", CSYNC_INSTRUCTION_SYNC));
QVERIFY(dbRecord(fakeFolder, "file3")._type == ItemTypeFile);
cleanup(); cleanup();
// Test rename while adding/removing vfs suffix // Test rename while adding/removing vfs suffix