mddiff(1)
NAME
mddiff - computes diff for maildirs
SYNOPSIS
mddiff [--max-mailno mno] [--db-file dbf] [-v|--verbose] [-d|--dry-run] [--help] paths
DESCRIPTION
mddiff computes the delta from an old status of a maildir (previously
recorded in a support file, called db file) and the current status,
generating a set of commands (a diff) that a third party software can
apply to synchronize a (eventually remote) copy of the maildir.
- If paths is a single file name, and that file is a fifo, mddiff reads
from it file names separated by new line and outputs the sha1 of its
header and body separated by space.
- $ mddiff /tmp/fifo_for_mddiff
806a0ffe4f29766effd764... 463e543da9dac8e298...
582cbb6a5cd3ce13965c8c... 8fa60a7458b1157193...
... - If paths is a list of directories, mddiff outputs a list of actions a client has to perform to synchronize a copy of the same maildirs. This set of actions is relative to a previous status of the maildir stored in the db file. The input directories are traversed recursively, and every file encountered inside directories named cur/ and new/ is a potential mail message (if it contains no \n\n it is skipped).
$ mddiff ~/Mail/
ADD ~/Mail/cur/1239038050.14937_1.garfield:2,S 66532ebb05b252e... ...- Every client (endpoint using mddiff for synchronization) must use a different db-file, and the db-file is strictly related with the set of directories given as arguments, and should not be used with a different directory set. Adding items to the directory set is safe, while removing them may not do what you want (delete actions are generated).
- mddiff does not alter the dbf file, it generates a new one called dbf.new. It is up to the higher level tool smd-server(1) to rename dbf.new to dbf in case the other endpoint successfully applied the diff.
OPTIONS
- --max-mailno mno
- Estimation of max mail message number (default 500000) Decrease for small systems, it is increased automatically if needed
- --db-file dbf
- Name of the cache for the endpoint (default db.txt)
- -v --verbose
- Increase program verbosity (printed on stderr)
- -d --dry-run
- Do not generate a new db-file
- --help This help screen
NOTES
mddiff is a low level utility, used by smd-server and smd-client. You
should use higher level tools like smd-pull(1), smd-push(1) and smdloop(1)
SEE ALSO
smd-client(1), smd-server(1), smd-pull(1), smd-push(1), smd-loop(1)
AUTHOR
- Enrico Tassi <gares@fettunta.org>