Package: release.debian.org
Severity: normal
User: release.debian....@packages.debian.org
Usertags: unblock

Please unblock package nextcloud-desktop

If someone moves a folder into the Nextcloud desktop controlled folder,
Nextcloud desktop didn't upload subfolders. This leads to a wired UX as
users see the complete directory tree localy, but missing those files
and folders on server.

The debdiff 2.5.1-2 - 2.5.1-3 is attached.

unblock nextcloud-desktop/2.5.1-3

-- System Information:
Debian Release: 10.0
  APT prefers unstable-debug
  APT policy: (500, 'unstable-debug'), (500, 'stable-updates'), (500, 
'unstable'), (500, 'testing'), (500, 'stable'), (500, 'oldstable'), (1, 
'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.19.0-5-amd64 (SMP w/4 CPU cores)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8), LANGUAGE=en_US 
(charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
diff -Nru nextcloud-desktop-2.5.1/debian/changelog 
nextcloud-desktop-2.5.1/debian/changelog
--- nextcloud-desktop-2.5.1/debian/changelog    2019-02-12 23:54:02.000000000 
+0100
+++ nextcloud-desktop-2.5.1/debian/changelog    2019-05-16 16:14:50.000000000 
+0200
@@ -1,3 +1,10 @@
+nextcloud-desktop (2.5.1-3) unstable; urgency=medium
+
+  * Fix "Subfolders of moved folders not synced" (Closes: #929079)
+    Added 0005-Fixed-Issue-1000-Subfolders-of-moved-folders-not-syn.patch
+
+ -- Sandro Knauß <he...@debian.org>  Thu, 16 May 2019 16:14:50 +0200
+
 nextcloud-desktop (2.5.1-2) unstable; urgency=medium
 
   [ Adrian Heine ]
diff -Nru 
nextcloud-desktop-2.5.1/debian/patches/0005-Fixed-Issue-1000-Subfolders-of-moved-folders-not-syn.patch
 
nextcloud-desktop-2.5.1/debian/patches/0005-Fixed-Issue-1000-Subfolders-of-moved-folders-not-syn.patch
--- 
nextcloud-desktop-2.5.1/debian/patches/0005-Fixed-Issue-1000-Subfolders-of-moved-folders-not-syn.patch
      1970-01-01 01:00:00.000000000 +0100
+++ 
nextcloud-desktop-2.5.1/debian/patches/0005-Fixed-Issue-1000-Subfolders-of-moved-folders-not-syn.patch
      2019-05-16 15:58:22.000000000 +0200
@@ -0,0 +1,92 @@
+From b6ff17c50be2339ba1dcfa9a8b0afeccacd6d6e5 Mon Sep 17 00:00:00 2001
+From: Joshua Sterner <joshua.s.ster...@gmail.com>
+Date: Thu, 9 May 2019 01:05:49 -0700
+Subject: [PATCH] Fixed Issue #1000 - Subfolders of moved folders not synced
+
+Signed-off-by: Joshua Sterner <joshua.s.ster...@gmail.com>
+---
+ src/gui/folderwatcher.cpp  | 18 ++++++++++++++++++
+ src/gui/folderwatcher.h    |  3 +++
+ test/testfolderwatcher.cpp | 13 +++++++++++++
+ 3 files changed, 34 insertions(+)
+
+diff --git a/src/gui/folderwatcher.cpp b/src/gui/folderwatcher.cpp
+index d8136ff36..65e68cb36 100644
+--- a/src/gui/folderwatcher.cpp
++++ b/src/gui/folderwatcher.cpp
+@@ -75,9 +75,27 @@ bool FolderWatcher::isReliable() const
+     return _isReliable;
+ }
+ 
++void FolderWatcher::appendSubPaths(QDir dir, QStringList& subPaths) {
++    QStringList newSubPaths = dir.entryList(QDir::NoDotAndDotDot | QDir::Dirs 
| QDir::Files);
++    for (int i = 0; i < newSubPaths.size(); i++) {
++        QString path = dir.path() + "/" + newSubPaths[i];
++        QFileInfo fileInfo(path);
++        subPaths.append(path);
++        if (fileInfo.isDir()) {
++            QDir dir(path);
++            appendSubPaths(dir, subPaths);
++        }
++    }
++}
++
+ void FolderWatcher::changeDetected(const QString &path)
+ {
++    QFileInfo fileInfo(path);
+     QStringList paths(path);
++    if (fileInfo.isDir()) {
++        QDir dir(path);
++        appendSubPaths(dir, paths);
++    }
+     changeDetected(paths);
+ }
+ 
+diff --git a/src/gui/folderwatcher.h b/src/gui/folderwatcher.h
+index a6cf006e2..b07c33a10 100644
+--- a/src/gui/folderwatcher.h
++++ b/src/gui/folderwatcher.h
+@@ -26,6 +26,7 @@
+ #include <QHash>
+ #include <QScopedPointer>
+ #include <QSet>
++#include <QDir>
+ 
+ class QTimer;
+ 
+@@ -120,6 +121,8 @@ private:
+     Folder *_folder;
+     bool _isReliable = true;
+ 
++    void appendSubPaths(QDir dir, QStringList& subPaths);
++
+     friend class FolderWatcherPrivate;
+ };
+ }
+diff --git a/test/testfolderwatcher.cpp b/test/testfolderwatcher.cpp
+index d90856828..b5dba5fbc 100644
+--- a/test/testfolderwatcher.cpp
++++ b/test/testfolderwatcher.cpp
+@@ -140,6 +140,19 @@ private slots:
+         QVERIFY(waitForPathChanged(file));
+     }
+ 
++    void testMove3LevelDirWithFile() {
++        QString file(_rootPath + "/a0/b/c/empty.txt");
++        mkdir(_rootPath + "/a0");
++        mkdir(_rootPath + "/a0/b");
++        mkdir(_rootPath + "/a0/b/c");
++        touch(file);
++        QString cmd = QString("mv " + _rootPath + "/a0 " + _rootPath + "/a");
++        qDebug() << "Command: " << cmd;
++        system(cmd.toLocal8Bit());
++        QVERIFY(waitForPathChanged(_rootPath + "/a/b/c/empty.txt"));
++    }
++
++
+     void testCreateADir() {
+         QString file(_rootPath+"/a1/b1/new_dir");
+         mkdir(file);
+-- 
+2.20.1
+
diff -Nru nextcloud-desktop-2.5.1/debian/patches/series 
nextcloud-desktop-2.5.1/debian/patches/series
--- nextcloud-desktop-2.5.1/debian/patches/series       2019-01-15 
16:06:15.000000000 +0100
+++ nextcloud-desktop-2.5.1/debian/patches/series       2019-05-16 
16:02:30.000000000 +0200
@@ -2,3 +2,4 @@
 0002-disable-updatecheck.patch
 0003-use_system_buildflags.patch
 0004-disable-git-hash-display.patch
+0005-Fixed-Issue-1000-Subfolders-of-moved-folders-not-syn.patch

Reply via email to