diff --git a/offlineimap/accounts.py b/offlineimap/accounts.py index 9f224d0..8e96347 100644 --- a/offlineimap/accounts.py +++ b/offlineimap/accounts.py @@ -145,7 +145,7 @@ class AccountSynchronizationMixin: localrepos = self.localrepos statusrepos = self.statusrepos self.ui.syncfolders(remoterepos, localrepos) - remoterepos.syncfoldersto(localrepos) + remoterepos.syncfoldersto(localrepos, [statusrepos]) folderthreads = [] for remotefolder in remoterepos.getfolders(): diff --git a/offlineimap/repository/Base.py b/offlineimap/repository/Base.py index 93e464b..0486dfc 100644 --- a/offlineimap/repository/Base.py +++ b/offlineimap/repository/Base.py @@ -125,9 +125,12 @@ class BaseRepository(CustomConfig.ConfigHelperMixin): def getfolder(self, foldername): raise NotImplementedError - def syncfoldersto(self, dest): + def syncfoldersto(self, dest, copyfolders): """Syncs the folders in this repository to those in dest. - It does NOT sync the contents of those folders.""" + It does NOT sync the contents of those folders. + + For every time dest.makefolder() is called, also call makefolder() + on each folder in copyfolders.""" src = self srcfolders = src.getfolders() destfolders = dest.getfolders() @@ -150,6 +153,8 @@ class BaseRepository(CustomConfig.ConfigHelperMixin): for key in srchash.keys(): if not key in desthash: dest.makefolder(key) + for copyfolder in copyfolders: + copyfolder.makefolder(key) # # Find deleted folders.