Kaynağa Gözat

Conflicts: Rename BasePath to InitialBasePath #6709

Christian Kamm 7 yıl önce
ebeveyn
işleme
6b571b609c

+ 2 - 2
src/common/syncjournaldb.cpp

@@ -1994,7 +1994,7 @@ void SyncJournalDb::setConflictRecord(const ConflictRecord &record)
     query.bindValue(2, record.baseFileId);
     query.bindValue(2, record.baseFileId);
     query.bindValue(3, record.baseModtime);
     query.bindValue(3, record.baseModtime);
     query.bindValue(4, record.baseEtag);
     query.bindValue(4, record.baseEtag);
-    query.bindValue(5, record.basePath);
+    query.bindValue(5, record.initialBasePath);
     ASSERT(query.exec());
     ASSERT(query.exec());
 }
 }
 
 
@@ -2016,7 +2016,7 @@ ConflictRecord SyncJournalDb::conflictRecord(const QByteArray &path)
     entry.baseFileId = query.baValue(0);
     entry.baseFileId = query.baValue(0);
     entry.baseModtime = query.int64Value(1);
     entry.baseModtime = query.int64Value(1);
     entry.baseEtag = query.baValue(2);
     entry.baseEtag = query.baValue(2);
-    entry.basePath = query.baValue(3);
+    entry.initialBasePath = query.baValue(3);
     return entry;
     return entry;
 }
 }
 
 

+ 5 - 2
src/common/syncjournalfilerecord.h

@@ -140,11 +140,14 @@ public:
     QByteArray baseEtag;
     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
      * maybe be empty if not available
      */
      */
-    QByteArray basePath;
+    QByteArray initialBasePath;
 
 
 
 
     bool isValid() const { return !path.isEmpty(); }
     bool isValid() const { return !path.isEmpty(); }

+ 1 - 1
src/libsync/owncloudpropagator.cpp

@@ -691,7 +691,7 @@ bool OwncloudPropagator::createConflict(const SyncFileItemPtr &item,
     ConflictRecord conflictRecord;
     ConflictRecord conflictRecord;
     conflictRecord.path = conflictFileName.toUtf8();
     conflictRecord.path = conflictFileName.toUtf8();
     conflictRecord.baseModtime = item->_previousModtime;
     conflictRecord.baseModtime = item->_previousModtime;
-    conflictRecord.basePath = item->_file.toUtf8();
+    conflictRecord.initialBasePath = item->_file.toUtf8();
 
 
     SyncJournalFileRecord baseRecord;
     SyncJournalFileRecord baseRecord;
     if (_journal->getFileRecord(item->_originalFile, &baseRecord) && baseRecord.isValid()) {
     if (_journal->getFileRecord(item->_originalFile, &baseRecord) && baseRecord.isValid()) {

+ 1 - 1
src/libsync/propagatedownload.cpp

@@ -714,7 +714,7 @@ void PropagateDownloadFile::slotGetFinished()
     // the database yet!)
     // the database yet!)
     if (job->reply()->rawHeader("OC-Conflict") == "1") {
     if (job->reply()->rawHeader("OC-Conflict") == "1") {
         _conflictRecord.path = _item->_file.toUtf8();
         _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.baseFileId = job->reply()->rawHeader("OC-ConflictBaseFileId");
         _conflictRecord.baseEtag = job->reply()->rawHeader("OC-ConflictBaseEtag");
         _conflictRecord.baseEtag = job->reply()->rawHeader("OC-ConflictBaseEtag");
 
 

+ 2 - 2
src/libsync/propagateupload.cpp

@@ -731,8 +731,8 @@ QMap<QByteArray, QByteArray> PropagateUploadFileCommon::headers()
     auto conflictRecord = propagator()->_journal->conflictRecord(_item->_file.toUtf8());
     auto conflictRecord = propagator()->_journal->conflictRecord(_item->_file.toUtf8());
     if (conflictRecord.isValid()) {
     if (conflictRecord.isValid()) {
         headers["OC-Conflict"] = "1";
         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())
         if (!conflictRecord.baseFileId.isEmpty())
             headers["OC-ConflictBaseFileId"] = conflictRecord.baseFileId;
             headers["OC-ConflictBaseFileId"] = conflictRecord.baseFileId;
         if (conflictRecord.baseModtime != -1)
         if (conflictRecord.baseModtime != -1)

+ 1 - 1
src/libsync/syncengine.cpp

@@ -279,7 +279,7 @@ void SyncEngine::conflictRecordMaintenance()
             ConflictRecord record;
             ConflictRecord record;
             record.path = bapath;
             record.path = bapath;
             auto basePath = Utility::conflictFileBaseNameFromPattern(bapath);
             auto basePath = Utility::conflictFileBaseNameFromPattern(bapath);
-            record.basePath = basePath;
+            record.initialBasePath = basePath;
 
 
             // Determine fileid of target file
             // Determine fileid of target file
             SyncJournalFileRecord baseRecord;
             SyncJournalFileRecord baseRecord;

+ 6 - 6
test/testsyncconflict.cpp

@@ -107,7 +107,7 @@ private slots:
                     conflictMap[baseFileId] = conflictFile;
                     conflictMap[baseFileId] = conflictFile;
                     [&] {
                     [&] {
                         QVERIFY(!baseFileId.isEmpty());
                         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;
                     conflictMap[baseFileId] = conflictFile;
                     [&] {
                     [&] {
                         QVERIFY(!baseFileId.isEmpty());
                         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 conflictRecord;
         conflictRecord.path = conflictName.toUtf8();
         conflictRecord.path = conflictName.toUtf8();
         conflictRecord.baseFileId = a1FileId;
         conflictRecord.baseFileId = a1FileId;
-        conflictRecord.basePath = "A/a1";
+        conflictRecord.initialBasePath = "A/a1";
         fakeFolder.syncJournal().setConflictRecord(conflictRecord);
         fakeFolder.syncJournal().setConflictRecord(conflictRecord);
         QVERIFY(fakeFolder.syncOnce());
         QVERIFY(fakeFolder.syncOnce());
         QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
         QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
@@ -225,7 +225,7 @@ private slots:
         auto conflictRecord = fakeFolder.syncJournal().conflictRecord("A/a1 (conflicted copy 1234)");
         auto conflictRecord = fakeFolder.syncJournal().conflictRecord("A/a1 (conflicted copy 1234)");
         QVERIFY(conflictRecord.isValid());
         QVERIFY(conflictRecord.isValid());
         QCOMPARE(conflictRecord.baseFileId, fakeFolder.remoteModifier().find("A/a1")->fileId);
         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
         // Now with server headers
         QObject parent;
         QObject parent;
@@ -237,7 +237,7 @@ private slots:
                 reply->setRawHeader("OC-ConflictBaseFileId", a2FileId);
                 reply->setRawHeader("OC-ConflictBaseFileId", a2FileId);
                 reply->setRawHeader("OC-ConflictBaseMtime", "1234");
                 reply->setRawHeader("OC-ConflictBaseMtime", "1234");
                 reply->setRawHeader("OC-ConflictBaseEtag", "etag");
                 reply->setRawHeader("OC-ConflictBaseEtag", "etag");
-                reply->setRawHeader("OC-ConflictBasePath", "A/original");
+                reply->setRawHeader("OC-ConflictInitialBasePath", "A/original");
                 return reply;
                 return reply;
             }
             }
             return nullptr;
             return nullptr;
@@ -250,7 +250,7 @@ private slots:
         QCOMPARE(conflictRecord.baseFileId, a2FileId);
         QCOMPARE(conflictRecord.baseFileId, a2FileId);
         QCOMPARE(conflictRecord.baseModtime, 1234);
         QCOMPARE(conflictRecord.baseModtime, 1234);
         QCOMPARE(conflictRecord.baseEtag, QByteArray("etag"));
         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
     // Check that conflict records are removed when the file is gone