On Tue, 2006-10-24 at 16:24 -0400, Charles Marcus wrote:
Having per-user read/unread flags will be a very nice bonus, but I don't see anything about support for those...
That works too, as long as you set the index file path to be different for each user, ie. something like:
location = maildir:/var/public/Maildir:INDEX=%h/.shared-indexes
hmm, so in this case the indexes are critical information?
Yes, the seen-flag state in them is critical information then.
Hmmm... I've never had to rebuild the normal indexes on dovecot - when this happens, do all messages on the next login show as read?
They show as whatever the seen flags were set in the master maildir. Most likely they'll show up as unread.
I was thinking about making the index file code more resistant to simply giving up and rebuilding the index, so that it would try to preserve the flag state as long as possible. Actually I don't think it has happened to pretty much anyone with the current code. But still theoretically it could use a few more fixes. :) This is also useful for dbox if it's being run in "keep flags/keywords only in index files" mode (I guess this option could just as well be added for mbox/maildir if someone wants).
Probably a dumb question - how practical would it be for dovecot to keep a backup version of the index files, that it could roll back to (at least for the flags (\Seen, etc)?
The index files are recreated by create a temp file and then rename()ing over every time when mails are being expunged. Before the rename() the old file could be link()ed to a backup file, so this could be done somewhat easily. Then if the index file is found to be corrupted, the backup file could be renamed to main index file.
I don't think it's worth the trouble though.