Conflicts: Rename BasePath to InitialBasePath #6709
authorChristian Kamm <mail@ckamm.de>
Tue, 21 Aug 2018 09:24:45 +0000 (11:24 +0200)
committerKevin Ottens <kevin.ottens@nextcloud.com>
Tue, 15 Dec 2020 09:58:05 +0000 (10:58 +0100)
src/common/syncjournaldb.cpp
src/common/syncjournalfilerecord.h
src/libsync/owncloudpropagator.cpp
src/libsync/propagatedownload.cpp
src/libsync/propagateupload.cpp
src/libsync/syncengine.cpp
test/testsyncconflict.cpp

index ee961862fd03ee20e673b9e59bd4e5ae78bc0bb4..610d85ddf4aff1847601a0da24084d1a9676e25c 100644 (file)
@@ -1994,7 +1994,7 @@ void SyncJournalDb::setConflictRecord(const ConflictRecord &record)
     query.bindValue(2, record.baseFileId);
     query.bindValue(3, record.baseModtime);
     query.bindValue(4, record.baseEtag);
-    query.bindValue(5, record.basePath);
+    query.bindValue(5, record.initialBasePath);
     ASSERT(query.exec());
 }
 
@@ -2016,7 +2016,7 @@ ConflictRecord SyncJournalDb::conflictRecord(const QByteArray &path)
     entry.baseFileId = query.baValue(0);
     entry.baseModtime = query.int64Value(1);
     entry.baseEtag = query.baValue(2);
-    entry.basePath = query.baValue(3);
+    entry.initialBasePath = query.baValue(3);
     return entry;
 }
 
index e1a9b32ff1cadcc76e74dcd43aff3ad45d25ad53..7f087dc2c8fae3b0ee928d252b711ef83f1324d5 100644 (file)
@@ -140,11 +140,14 @@ public:
     QByteArray baseEtag;
 
     /**
-     * The path of the original file
+     * The path of the original file at the time the conflict was created
+     *
+     * Note that in nearly all cases one should query the db by baseFileId and
+     * thus retrieve the *current* base path instead!
      *
      * maybe be empty if not available
      */
-    QByteArray basePath;
+    QByteArray initialBasePath;
 
 
     bool isValid() const { return !path.isEmpty(); }
index 59b0ae59ee8752dc77685237001d23f6c17a75e5..e1b83ac33801746051b14698ee80086da0cf63ef 100644 (file)
@@ -691,7 +691,7 @@ bool OwncloudPropagator::createConflict(const SyncFileItemPtr &item,
     ConflictRecord conflictRecord;
     conflictRecord.path = conflictFileName.toUtf8();
     conflictRecord.baseModtime = item->_previousModtime;
-    conflictRecord.basePath = item->_file.toUtf8();
+    conflictRecord.initialBasePath = item->_file.toUtf8();
 
     SyncJournalFileRecord baseRecord;
     if (_journal->getFileRecord(item->_originalFile, &baseRecord) && baseRecord.isValid()) {
index e54e8e7e6278882f73149bbd3119a6084777aca2..b276a8928c5c9728342a0d0fc832b94d98c384c0 100644 (file)
@@ -714,7 +714,7 @@ void PropagateDownloadFile::slotGetFinished()
     // the database yet!)
     if (job->reply()->rawHeader("OC-Conflict") == "1") {
         _conflictRecord.path = _item->_file.toUtf8();
-        _conflictRecord.basePath = job->reply()->rawHeader("OC-ConflictBasePath");
+        _conflictRecord.initialBasePath = job->reply()->rawHeader("OC-ConflictInitialBasePath");
         _conflictRecord.baseFileId = job->reply()->rawHeader("OC-ConflictBaseFileId");
         _conflictRecord.baseEtag = job->reply()->rawHeader("OC-ConflictBaseEtag");
 
index e7767465ad6fdb661b0a33dacf38a31e86f649e7..9f1c1cf6b29d012beac8b0be98c2fdf5acf24399 100644 (file)
@@ -731,8 +731,8 @@ QMap<QByteArray, QByteArray> PropagateUploadFileCommon::headers()
     auto conflictRecord = propagator()->_journal->conflictRecord(_item->_file.toUtf8());
     if (conflictRecord.isValid()) {
         headers["OC-Conflict"] = "1";
-        if (!conflictRecord.basePath.isEmpty())
-            headers["OC-ConflictBasePath"] = conflictRecord.basePath;
+        if (!conflictRecord.initialBasePath.isEmpty())
+            headers["OC-ConflictInitialBasePath"] = conflictRecord.initialBasePath;
         if (!conflictRecord.baseFileId.isEmpty())
             headers["OC-ConflictBaseFileId"] = conflictRecord.baseFileId;
         if (conflictRecord.baseModtime != -1)
index 8b0e86ec8e8b535093d6975c078e32743d4c85a0..c6d4aa2f20c8803dfc537bfec86863acf62a21c7 100644 (file)
@@ -279,7 +279,7 @@ void SyncEngine::conflictRecordMaintenance()
             ConflictRecord record;
             record.path = bapath;
             auto basePath = Utility::conflictFileBaseNameFromPattern(bapath);
-            record.basePath = basePath;
+            record.initialBasePath = basePath;
 
             // Determine fileid of target file
             SyncJournalFileRecord baseRecord;
index 635fd7d56c44938c022f4f87874857d0574c5dd2..48cf1bf0c01f03dbf4778c886c2538d65ad21743 100644 (file)
@@ -107,7 +107,7 @@ private slots:
                     conflictMap[baseFileId] = conflictFile;
                     [&] {
                         QVERIFY(!baseFileId.isEmpty());
-                        QCOMPARE(request.rawHeader("OC-ConflictBasePath"), Utility::conflictFileBaseNameFromPattern(conflictFile.toUtf8()));
+                        QCOMPARE(request.rawHeader("OC-ConflictInitialBasePath"), Utility::conflictFileBaseNameFromPattern(conflictFile.toUtf8()));
                     }();
                 }
             }
@@ -157,7 +157,7 @@ private slots:
                     conflictMap[baseFileId] = conflictFile;
                     [&] {
                         QVERIFY(!baseFileId.isEmpty());
-                        QCOMPARE(request.rawHeader("OC-ConflictBasePath"), Utility::conflictFileBaseNameFromPattern(conflictFile.toUtf8()));
+                        QCOMPARE(request.rawHeader("OC-ConflictInitialBasePath"), Utility::conflictFileBaseNameFromPattern(conflictFile.toUtf8()));
                     }();
                 }
             }
@@ -173,7 +173,7 @@ private slots:
         ConflictRecord conflictRecord;
         conflictRecord.path = conflictName.toUtf8();
         conflictRecord.baseFileId = a1FileId;
-        conflictRecord.basePath = "A/a1";
+        conflictRecord.initialBasePath = "A/a1";
         fakeFolder.syncJournal().setConflictRecord(conflictRecord);
         QVERIFY(fakeFolder.syncOnce());
         QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
@@ -225,7 +225,7 @@ private slots:
         auto conflictRecord = fakeFolder.syncJournal().conflictRecord("A/a1 (conflicted copy 1234)");
         QVERIFY(conflictRecord.isValid());
         QCOMPARE(conflictRecord.baseFileId, fakeFolder.remoteModifier().find("A/a1")->fileId);
-        QCOMPARE(conflictRecord.basePath, QByteArray("A/a1"));
+        QCOMPARE(conflictRecord.initialBasePath, QByteArray("A/a1"));
 
         // Now with server headers
         QObject parent;
@@ -237,7 +237,7 @@ private slots:
                 reply->setRawHeader("OC-ConflictBaseFileId", a2FileId);
                 reply->setRawHeader("OC-ConflictBaseMtime", "1234");
                 reply->setRawHeader("OC-ConflictBaseEtag", "etag");
-                reply->setRawHeader("OC-ConflictBasePath", "A/original");
+                reply->setRawHeader("OC-ConflictInitialBasePath", "A/original");
                 return reply;
             }
             return nullptr;
@@ -250,7 +250,7 @@ private slots:
         QCOMPARE(conflictRecord.baseFileId, a2FileId);
         QCOMPARE(conflictRecord.baseModtime, 1234);
         QCOMPARE(conflictRecord.baseEtag, QByteArray("etag"));
-        QCOMPARE(conflictRecord.basePath, QByteArray("A/original"));
+        QCOMPARE(conflictRecord.initialBasePath, QByteArray("A/original"));
     }
 
     // Check that conflict records are removed when the file is gone