I have experimented with offlineimap, syncmaildir and rsync. The append-only approach of notmuch makes synchronization of the mail corpus simpler, so there are lots of options. With ssh access to the server, I found rsync to be conceptually the simplest, but it turned out to be too slow for me (with ~110k mails) when frequently checking for new mails.
What I have settled with is a hacked together ruby script that uses the notmuch command line both on the server and on the client to determine unsynced mails, and then runs rsync explicitely for the necessary files. The notmuch index on the server is only used to find new files for this synchronization process, and is different from the notmuch indexes I have on my client machines. A prerequisite for this is of course ssh access and the ability to set up notmuch on the server. The steps performed on a sync run are roughly like this: - local: notmuch new - local: notmuch search --output=messages <some time ago>..<now> - remote: notmuch new - remote: notmuch search --output=messages <some time ago>..<now> - compare search results - run rsync for mails that only exist locally (using notmuch search --output=files to get the filenames) - run rsync for mails that only exist remotely (using notmuch search --output=files to get the filenames) With a reused ssh connection this is sufficiently fast for me (<2s). If there is interest I can clean up the script of hardcoded paths etc. and put it on github. Synchronization of the notmuch tags database is only necessary when I switch between different client computers, which happens less frequently. Like David I have a dump file committed to git for that. I found it useful to sort the output before adding it to git, to avoid huge unreadable diffs: notmuch dump --format=batch-tag | sort > /path/to/notmuch.dump Til
Description: PGP signature
_______________________________________________ notmuch mailing list email@example.com http://notmuchmail.org/mailman/listinfo/notmuch