From 570d42269ea0d28fcfb102be3ff87694807b4655 Mon Sep 17 00:00:00 2001 From: abraunegg Date: Wed, 11 Apr 2018 13:02:06 +1000 Subject: [PATCH] Fix onedrive not syncing "hidden" directories * Fix the handling of hidden filenames & directories (.hello, .git etc) so that these are uploaded / downloaded without issue. * Add verbose logging for uploaded files as to why they were skipped --- src/selective.d | 9 ++++++++- src/sync.d | 3 +++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/selective.d b/src/selective.d index 733a6aa6..c7ece8fb 100644 --- a/src/selective.d +++ b/src/selective.d @@ -29,7 +29,14 @@ final class SelectiveSync bool isNameExcluded(string name) { - return !name.matchFirst(mask).empty; + auto validName = isValidFilename(name); + if (validName){ + // This is a valid filename - do NOT exclude + return false; + } else { + // Invalid file name - exclude this name + return true; + } } bool isPathExcluded(string path) diff --git a/src/sync.d b/src/sync.d index 7b9d5269..652151ec 100644 --- a/src/sync.d +++ b/src/sync.d @@ -715,15 +715,18 @@ final class SyncEngine // skip unexisting symbolic links if (isSymlink(path) && !exists(readLink(path))) { + log.vlog("Skipping item - symbolic link: ", path); return; } // skip filtered items if (path != ".") { if (selectiveSync.isNameExcluded(baseName(path))) { + log.vlog("Skipping item - invalid name: ", path); return; } if (selectiveSync.isPathExcluded(path)) { + log.vlog("Skipping item - path excluded: ", path); return; } }