From 05fa9cb3795e6bd6d91a427e9bf7f3b7fa66d405 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20M=C3=B6ller?= Date: Tue, 25 Sep 2018 17:55:33 +0200 Subject: [PATCH] drive: improve directory notifications in ChangeNotify When moving a directory in drive, most of the time only a notification for the directory itself is created, not the old or new parents. This tires to find the old path in the dirCache and the new path with the dirCache of the new parent, which can result in two notifications for a moved directory. --- backend/drive/drive.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/drive/drive.go b/backend/drive/drive.go index 44e23700c..e06241820 100644 --- a/backend/drive/drive.go +++ b/backend/drive/drive.go @@ -2061,15 +2061,16 @@ func (f *Fs) changeNotifyRunner(notifyFunc func(string, fs.EntryType), startPage } var pathsToClear []entryType for _, change := range changeList.Changes { + // find the previous path if path, ok := f.dirCache.GetInv(change.FileId); ok { if change.File != nil && change.File.MimeType != driveFolderType { pathsToClear = append(pathsToClear, entryType{path: path, entryType: fs.EntryObject}) } else { pathsToClear = append(pathsToClear, entryType{path: path, entryType: fs.EntryDirectory}) } - continue } + // find the new path if change.File != nil { changeType := fs.EntryDirectory if change.File.MimeType != driveFolderType {