Merge branch 'ss/improved-folderfilter-errors' into next

Conflicts:
	Changelog.draft.rst
This commit is contained in:
Nicolas Sebrecht 2011-08-12 18:29:23 +02:00
commit a38c6da49d
2 changed files with 10 additions and 1 deletions

View File

@ -28,6 +28,9 @@ Bug Fixes
* We protect more robustly against asking for inexistent messages from the * We protect more robustly against asking for inexistent messages from the
IMAP server, when someone else deletes or moves messages while we sync. IMAP server, when someone else deletes or moves messages while we sync.
* Selecting inexistent folders specified in folderincludes now throws
nice errors and continues to sync with all other folders rather than
exiting offlineimap with a traceback.
Pending for the next major release Pending for the next major release
================================== ==================================

View File

@ -24,6 +24,7 @@ from threading import Event
import re import re
import types import types
import os import os
from sys import exc_info
import netrc import netrc
import errno import errno
@ -307,7 +308,12 @@ class IMAPRepository(BaseRepository):
for foldername in self.folderincludes: for foldername in self.folderincludes:
try: try:
imapobj.select(foldername, readonly = 1) imapobj.select(foldername, readonly = 1)
except ValueError: except OfflineImapError, e:
# couldn't select this folderinclude, so ignore folder.
if e.severity > OfflineImapError.ERROR.FOLDER:
raise
self.ui.error(e, exc_info()[2],
'Invalid folderinclude:')
continue continue
retval.append(self.getfoldertype()(self.imapserver, retval.append(self.getfoldertype()(self.imapserver,
foldername, foldername,