Man Linux: Main Page and Category List


       mddiff - computes diff for maildirs


       mddiff [--max-mailno mno] [--db-file dbf]
              [-v|--verbose] [-d|--dry-run] [--help] paths


       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   It  is  up  to the higher level tool smd-server(1) to rename to dbf in case the  other  endpoint  successfully  applied  the


       --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


       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 smd-


       smd-client(1), smd-server(1), smd-pull(1), smd-push(1), smd-loop(1)


       Enrico Tassi <>

                                 20 June 2010                        mddiff(1)