[Pkg-owncloud-commits] [owncloud-client] 04/06: Remove upstream applied patches.
Sandro Knauß
hefee at debian.org
Sat Dec 16 11:27:33 UTC 2017
This is an automated email from the git hooks/post-receive script.
hefee pushed a commit to branch experimental
in repository owncloud-client.
commit 210a365ce9d27284516aacf17c969a9e3f6e7243
Author: Sandro Knauß <hefee at debian.org>
Date: Sat Dec 16 11:21:01 2017 +0100
Remove upstream applied patches.
---
debian/changelog | 1 +
...ear-csync-rename-mappings-after-reconcile.patch | 27 --
...ename-maps-are-consistent-with-update-pha.patch | 294 ---------------------
debian/patches/series | 2 -
4 files changed, 1 insertion(+), 323 deletions(-)
diff --git a/debian/changelog b/debian/changelog
index 49760c3..ac8f158 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,7 @@
owncloud-client (2.4.0~rc2+dfsg-1) UNRELEASED; urgency=medium
* New upstream release 2.4.0~rc2 (still experimental).
+ * Remove upstream applied patches.
-- Sandro Knauß <hefee at debian.org> Sat, 16 Dec 2017 11:02:09 +0100
diff --git a/debian/patches/0010-Clear-csync-rename-mappings-after-reconcile.patch b/debian/patches/0010-Clear-csync-rename-mappings-after-reconcile.patch
deleted file mode 100644
index b8bdd37..0000000
--- a/debian/patches/0010-Clear-csync-rename-mappings-after-reconcile.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 99f32dcb99c6f2f99914aa5b4ec254ba0d48e3ba Mon Sep 17 00:00:00 2001
-From: Christian Kamm <mail at ckamm.de>
-Date: Tue, 5 Dec 2017 13:41:27 +0100
-Subject: [PATCH 1/2] Clear csync rename mappings after reconcile
-
-They were being preserved *across sync runs*.
----
- src/csync/csync.cpp | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/src/csync/csync.cpp b/src/csync/csync.cpp
-index 4f0c19916..e6291f427 100644
---- a/src/csync/csync.cpp
-+++ b/src/csync/csync.cpp
-@@ -314,6 +314,9 @@ int csync_s::reinitialize() {
- local.files.clear();
- remote.files.clear();
-
-+ renames.folder_renamed_from.clear();
-+ renames.folder_renamed_to.clear();
-+
- status = CSYNC_STATUS_INIT;
- SAFE_FREE(error_string);
-
---
-2.15.1
-
diff --git a/debian/patches/0011-Reconcile-Rename-maps-are-consistent-with-update-pha.patch b/debian/patches/0011-Reconcile-Rename-maps-are-consistent-with-update-pha.patch
deleted file mode 100644
index 9a2fe31..0000000
--- a/debian/patches/0011-Reconcile-Rename-maps-are-consistent-with-update-pha.patch
+++ /dev/null
@@ -1,294 +0,0 @@
-From ceac18c5547836f2b4d6e1410adfbd1f0aaa1bee Mon Sep 17 00:00:00 2001
-From: Christian Kamm <mail at ckamm.de>
-Date: Tue, 5 Dec 2017 13:42:55 +0100
-Subject: [PATCH 2/2] Reconcile: Rename maps are consistent with update phase
- #6212
-
-For duplicate file ids the update phase and reconcile phase determined
-the rename mappings independently. If they disagreed (due to different
-order of processing), complicated misbehavior would result.
-
-This patch fixes it by letting reconcile try to use the mapping that the
-update phase has computed first.
----
- src/csync/csync.cpp | 4 ++--
- src/csync/csync_reconcile.cpp | 47 +++++++++++++++++++++++++++++++-----------
- src/csync/csync_rename.cpp | 20 +++++++++++++++---
- src/csync/csync_rename.h | 15 +++++++++++---
- src/libsync/discoveryphase.cpp | 2 +-
- test/testsyncmove.cpp | 27 +++++++++++++++++-------
- 6 files changed, 87 insertions(+), 28 deletions(-)
-
-diff --git a/src/csync/csync.cpp b/src/csync/csync.cpp
-index e6291f427..93438007a 100644
---- a/src/csync/csync.cpp
-+++ b/src/csync/csync.cpp
-@@ -211,14 +211,14 @@ static int _csync_treewalk_visitor(csync_file_stat_t *cur, CSYNC * ctx) {
-
- if (other_file_it == other_tree->cend()) {
- /* Check the renamed path as well. */
-- QByteArray renamed_path = csync_rename_adjust_path(ctx, cur->path);
-+ QByteArray renamed_path = csync_rename_adjust_parent_path(ctx, cur->path);
- if (renamed_path != cur->path)
- other_file_it = other_tree->find(renamed_path);
- }
-
- if (other_file_it == other_tree->cend()) {
- /* Check the source path as well. */
-- QByteArray renamed_path = csync_rename_adjust_path_source(ctx, cur->path);
-+ QByteArray renamed_path = csync_rename_adjust_parent_path_source(ctx, cur->path);
- if (renamed_path != cur->path)
- other_file_it = other_tree->find(renamed_path);
- }
-diff --git a/src/csync/csync_reconcile.cpp b/src/csync/csync_reconcile.cpp
-index b2283ad2c..97863fb8b 100644
---- a/src/csync/csync_reconcile.cpp
-+++ b/src/csync/csync_reconcile.cpp
-@@ -113,7 +113,7 @@ static int _csync_merge_algorithm_visitor(csync_file_stat_t *cur, CSYNC * ctx) {
-
- if (!other) {
- /* Check the renamed path as well. */
-- other = other_tree->findFile(csync_rename_adjust_path(ctx, cur->path));
-+ other = other_tree->findFile(csync_rename_adjust_parent_path(ctx, cur->path));
- }
- if (!other) {
- /* Check if it is ignored */
-@@ -147,24 +147,25 @@ static int _csync_merge_algorithm_visitor(csync_file_stat_t *cur, CSYNC * ctx) {
- cur->instruction = CSYNC_INSTRUCTION_NEW;
-
- bool processedRename = false;
-- auto renameCandidateProcessing = [&](const OCC::SyncJournalFileRecord &base) {
-+ auto renameCandidateProcessing = [&](const QByteArray &basePath) {
- if (processedRename)
- return;
-- if (!base.isValid())
-+ if (basePath.isEmpty())
- return;
-
- /* First, check that the file is NOT in our tree (another file with the same name was added) */
-- if (our_tree->findFile(base._path)) {
-- qCDebug(lcReconcile, "Origin found in our tree : %s", base._path.constData());
-+ if (our_tree->findFile(basePath)) {
-+ other = nullptr;
-+ qCDebug(lcReconcile, "Origin found in our tree : %s", basePath.constData());
- } else {
- /* Find the potential rename source file in the other tree.
- * If the renamed file could not be found in the opposite tree, that is because it
- * is not longer existing there, maybe because it was renamed or deleted.
- * The journal is cleaned up later after propagation.
- */
-- other = other_tree->findFile(base._path);
-+ other = other_tree->findFile(basePath);
- qCDebug(lcReconcile, "Rename origin in other tree (%s) %s",
-- base._path.constData(), other ? "found" : "not found");
-+ basePath.constData(), other ? "found" : "not found");
- }
-
- if(!other) {
-@@ -197,7 +198,7 @@ static int _csync_merge_algorithm_visitor(csync_file_stat_t *cur, CSYNC * ctx) {
- cur->instruction = CSYNC_INSTRUCTION_NONE;
- // We have consumed 'other': exit this loop to not consume another one.
- processedRename = true;
-- } else if (our_tree->findFile(csync_rename_adjust_path(ctx, other->path)) == cur) {
-+ } else if (our_tree->findFile(csync_rename_adjust_parent_path(ctx, other->path)) == cur) {
- // If we're here, that means that the other side's reconcile will be able
- // to work against cur: The filename itself didn't change, only a parent
- // directory was renamed! In that case it's safe to ignore the rename
-@@ -225,12 +226,34 @@ static int _csync_merge_algorithm_visitor(csync_file_stat_t *cur, CSYNC * ctx) {
- qCDebug(lcReconcile, "Finding rename origin through inode %" PRIu64 "",
- cur->inode);
- ctx->statedb->getFileRecordByInode(cur->inode, &base);
-- renameCandidateProcessing(base);
-+ renameCandidateProcessing(base._path);
- } else {
- ASSERT(ctx->current == REMOTE_REPLICA);
-- qCDebug(lcReconcile, "Finding rename origin through file ID %s",
-- cur->file_id.constData());
-- ctx->statedb->getFileRecordsByFileId(cur->file_id, renameCandidateProcessing);
-+
-+ // The update phase has already mapped out all dir->dir renames, check the
-+ // path that is consistent with that first. Otherwise update mappings and
-+ // reconcile mappings might disagree, leading to odd situations down the
-+ // line.
-+ auto basePath = csync_rename_adjust_full_path_source(ctx, cur->path);
-+ if (basePath != cur->path) {
-+ qCDebug(lcReconcile, "Trying rename origin by csync_rename mapping %s",
-+ basePath.constData());
-+ // We go through getFileRecordsByFileId to ensure the basePath
-+ // computed in this way also has the expected fileid.
-+ ctx->statedb->getFileRecordsByFileId(cur->file_id,
-+ [&](const OCC::SyncJournalFileRecord &base) {
-+ if (base._path == basePath)
-+ renameCandidateProcessing(basePath);
-+ });
-+ }
-+
-+ // Also feed all the other files with the same fileid if necessary
-+ if (!processedRename) {
-+ qCDebug(lcReconcile, "Finding rename origin through file ID %s",
-+ cur->file_id.constData());
-+ ctx->statedb->getFileRecordsByFileId(cur->file_id,
-+ [&](const OCC::SyncJournalFileRecord &base) { renameCandidateProcessing(base._path); });
-+ }
- }
-
- break;
-diff --git a/src/csync/csync_rename.cpp b/src/csync/csync_rename.cpp
-index da76cff52..80b3f1439 100644
---- a/src/csync/csync_rename.cpp
-+++ b/src/csync/csync_rename.cpp
-@@ -36,7 +36,7 @@ void csync_rename_record(CSYNC* ctx, const QByteArray &from, const QByteArray &t
- ctx->renames.folder_renamed_from[to] = from;
- }
-
--QByteArray csync_rename_adjust_path(CSYNC* ctx, const QByteArray &path)
-+QByteArray csync_rename_adjust_parent_path(CSYNC *ctx, const QByteArray &path)
- {
- if (ctx->renames.folder_renamed_to.empty())
- return path;
-@@ -50,11 +50,25 @@ QByteArray csync_rename_adjust_path(CSYNC* ctx, const QByteArray &path)
- return path;
- }
-
--QByteArray csync_rename_adjust_path_source(CSYNC* ctx, const QByteArray &path)
-+QByteArray csync_rename_adjust_parent_path_source(CSYNC *ctx, const QByteArray &path)
- {
- if (ctx->renames.folder_renamed_from.empty())
- return path;
-- for (auto p = _parentDir(path); !p.isEmpty(); p = _parentDir(p)) {
-+ for (ByteArrayRef p = _parentDir(path); !p.isEmpty(); p = _parentDir(p)) {
-+ auto it = ctx->renames.folder_renamed_from.find(p);
-+ if (it != ctx->renames.folder_renamed_from.end()) {
-+ QByteArray rep = it->second + path.mid(p.length());
-+ return rep;
-+ }
-+ }
-+ return path;
-+}
-+
-+QByteArray csync_rename_adjust_full_path_source(CSYNC *ctx, const QByteArray &path)
-+{
-+ if (ctx->renames.folder_renamed_from.empty())
-+ return path;
-+ for (ByteArrayRef p = path; !p.isEmpty(); p = _parentDir(p)) {
- auto it = ctx->renames.folder_renamed_from.find(p);
- if (it != ctx->renames.folder_renamed_from.end()) {
- QByteArray rep = it->second + path.mid(p.length());
-diff --git a/src/csync/csync_rename.h b/src/csync/csync_rename.h
-index 194f4256c..825f45f4e 100644
---- a/src/csync/csync_rename.h
-+++ b/src/csync/csync_rename.h
-@@ -22,10 +22,19 @@
-
- #include "csync.h"
-
--/* Return the final destination path of a given patch in case of renames */
--QByteArray OCSYNC_EXPORT csync_rename_adjust_path(CSYNC *ctx, const QByteArray &path);
-+/* Return the final destination path of a given patch in case of renames
-+ *
-+ * Does only map the parent directories. If the directory "A" is renamed to
-+ * "B" then this function will not map "A" to "B". Only "A/foo" -> "B/foo".
-+*/
-+QByteArray OCSYNC_EXPORT csync_rename_adjust_parent_path(CSYNC *ctx, const QByteArray &path);
-+
- /* Return the source of a given path in case of renames */
--QByteArray OCSYNC_EXPORT csync_rename_adjust_path_source(CSYNC *ctx, const QByteArray &path);
-+QByteArray OCSYNC_EXPORT csync_rename_adjust_parent_path_source(CSYNC *ctx, const QByteArray &path);
-+
-+/* like the parent_path variant, but applying to the full path */
-+QByteArray OCSYNC_EXPORT csync_rename_adjust_full_path_source(CSYNC *ctx, const QByteArray &path);
-+
- void OCSYNC_EXPORT csync_rename_record(CSYNC *ctx, const QByteArray &from, const QByteArray &to);
- /* Return the amount of renamed item recorded */
- bool OCSYNC_EXPORT csync_rename_count(CSYNC *ctx);
-diff --git a/src/libsync/discoveryphase.cpp b/src/libsync/discoveryphase.cpp
-index 8f99bc66f..14df57ac3 100644
---- a/src/libsync/discoveryphase.cpp
-+++ b/src/libsync/discoveryphase.cpp
-@@ -75,7 +75,7 @@ bool DiscoveryJob::isInSelectiveSyncBlackList(const QByteArray &path) const
-
- // Also try to adjust the path if there was renames
- if (csync_rename_count(_csync_ctx)) {
-- QByteArray adjusted = csync_rename_adjust_path_source(_csync_ctx, path);
-+ QByteArray adjusted = csync_rename_adjust_parent_path_source(_csync_ctx, path);
- if (adjusted != path) {
- return findPathInList(_selectiveSyncBlackList, QString::fromUtf8(adjusted));
- }
-diff --git a/test/testsyncmove.cpp b/test/testsyncmove.cpp
-index 11b354ad4..5049b019a 100644
---- a/test/testsyncmove.cpp
-+++ b/test/testsyncmove.cpp
-@@ -231,12 +231,25 @@ private slots:
- QCOMPARE(fakeFolder.currentLocalState(), remoteInfo);
- }
-
-+ void testDuplicateFileId_data()
-+ {
-+ QTest::addColumn<QString>("prefix");
-+
-+ // There have been bugs related to how the original
-+ // folder and the folder with the duplicate tree are
-+ // ordered. Test both cases here.
-+ QTest::newRow("first ordering") << "O"; // "O" > "A"
-+ QTest::newRow("second ordering") << "0"; // "0" < "A"
-+ }
-+
- // If the same folder is shared in two different ways with the same
- // user, the target user will see duplicate file ids. We need to make
- // sure the move detection and sync still do the right thing in that
- // case.
- void testDuplicateFileId()
- {
-+ QFETCH(QString, prefix);
-+
- FakeFolder fakeFolder{ FileInfo::A12_B12_C12_S12() };
- auto &remote = fakeFolder.remoteModifier();
-
-@@ -245,8 +258,8 @@ private slots:
- remote.mkdir("A/Q");
-
- // Duplicate every entry in A under O/A
-- remote.mkdir("O");
-- remote.children["O"].addChild(remote.children["A"]);
-+ remote.mkdir(prefix);
-+ remote.children[prefix].addChild(remote.children["A"]);
-
- // This already checks that the rename detection doesn't get
- // horribly confused if we add new files that have the same
-@@ -263,28 +276,28 @@ private slots:
-
- // Try a remote file move
- remote.rename("A/a1", "A/W/a1m");
-- remote.rename("O/A/a1", "O/A/W/a1m");
-+ remote.rename(prefix + "/A/a1", prefix + "/A/W/a1m");
- QVERIFY(fakeFolder.syncOnce());
- QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
- QCOMPARE(nGET, 0);
-
- // And a remote directory move
- remote.rename("A/W", "A/Q/W");
-- remote.rename("O/A/W", "O/A/Q/W");
-+ remote.rename(prefix + "/A/W", prefix + "/A/Q/W");
- QVERIFY(fakeFolder.syncOnce());
- QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
- QCOMPARE(nGET, 0);
-
- // Partial file removal (in practice, A/a2 may be moved to O/a2, but we don't care)
-- remote.rename("O/A/a2", "O/a2");
-+ remote.rename(prefix + "/A/a2", prefix + "/a2");
- remote.remove("A/a2");
- QVERIFY(fakeFolder.syncOnce());
- QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
- QCOMPARE(nGET, 0);
-
- // Local change plus remote move at the same time
-- fakeFolder.localModifier().appendByte("O/a2");
-- remote.rename("O/a2", "O/a3");
-+ fakeFolder.localModifier().appendByte(prefix + "/a2");
-+ remote.rename(prefix + "/a2", prefix + "/a3");
- QVERIFY(fakeFolder.syncOnce());
- QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
- QCOMPARE(nGET, 1);
---
-2.15.1
-
diff --git a/debian/patches/series b/debian/patches/series
index ab9b513..581aaf4 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -7,6 +7,4 @@
0007-move-translations.patch
0008-make-reproducable.patch
0009-fix-installpath-of-dolphin-plugin.patch
-0010-Clear-csync-rename-mappings-after-reconcile.patch
-0011-Reconcile-Rename-maps-are-consistent-with-update-pha.patch
fix-build-alpha_hppa.patch
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud-client.git
More information about the Pkg-owncloud-commits
mailing list