No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

mddiff.1.txt 4.4KB

  1. NAME
  2. mddiff - computes diff for maildirs
  4. mddiff [--max-mailno mno] [--db-file dbf] [-l|--list] [-s|--symlink]
  5. [--exclude globexpr] [-v|--verbose] [-d|--dry-run]
  6. [-n|--no-delete] [--no-move] [--help] [--sha1sum] paths
  8. mddiff computes the delta from an old status of a maildir (previously
  9. recorded in a support file, called db file) and the current status,
  10. generating a set of commands (a diff) that a third party software can
  11. apply to synchronize a (eventually remote) copy of the maildir.
  12. If paths is a single file name, and that file is a fifo, mddiff reads
  13. from it file names separated by new line and outputs the sha1 of its header
  14. and body separated by space.
  15. $ mddiff /tmp/fifo_for_mddiff
  16. 806a0ffe4f29766effd764... 463e543da9dac8e298...
  17. 582cbb6a5cd3ce13965c8c... 8fa60a7458b1157193...
  18. ...
  19. If paths is a single file name, and that file is a fifo, and the -s option
  20. is passed, mddiff reads from that fifo two lines at a time, respectively
  21. a source name and a target name. It then creates a symlink named as
  22. as the target name pointing to the source name. If some dictories need to be
  23. created in order to create the symlink, this is also done. mddiff will
  24. print 'OK' on stdout to signal a success, 'ERROR' to signal an error.
  25. If paths is a list of directories, mddiff outputs a list of actions a client
  26. has to perform to synchronize a copy of the same maildirs. This set of actions
  27. is relative to a previous status of the maildir stored in the db file.
  28. The input directories are traversed recursively, and every file encountered
  29. inside directories named cur/ and new/ is a potential mail message (if it
  30. contains no \\n\\n it is skipped).
  31. $ mddiff ~/Mail/
  32. ADD ~/Mail/cur/1239038050.14937_1.garfield:2,S 66532ebb05b252e...
  33. ...
  34. Every client (endpoint using mddiff for synchronization) must use a different
  35. db-file, and the db-file is strictly related with the set of directories given
  36. as arguments, and should not be used with a different directory set. Adding
  37. items to the directory set is safe, while removing them may not do what you
  38. want (delete actions are generated).
  39. mddiff does not alter the dbf file, it generates a new one called
  40. It is up to the higher level tool smd-server(1) to rename to dbf
  41. in case the other endpoint successfully applied the diff.
  42. The --exclude option tells mddiff to ignore all paths matching the given
  43. glob(7) expression. This option can be passed multiple times. Matching
  44. is performed using fnmatch(3) with no special flags, thus '*' and '?' match
  45. any character including '/'. Matching is performed when a directory is
  46. entered. If the match is successful, the directory and all its
  47. subedirectories are skipped.
  48. The --no-delete option tells mddiff to not output a DELETE action for
  49. files that disappear. Note that a DELETE action is anyway generated for
  50. files that are moved (i.e. move is COPY plus DELETE). The result is that
  51. deletions are not propagated to the other endpoint.
  53. --max-mailno mno Estimation of max mail message number (defaults to the
  54. number of messages in the db-file + 1000 or 500000
  55. if there is no db-file). You may want to decrease it
  56. for the first run on small systems. It is anyway
  57. increased automatically when needed
  58. --db-file dbf Name of the cache for the endpoint (default db.txt)
  59. --exclude globexpr Exclude paths maching the given expression
  60. --sha1sum Behaves like the sha1sum utility
  61. --mkdir-p Behaves like mkdir -p
  62. --mkfifo Behaves like mkfifo
  63. -l --list Only list the mailboxes recursively contained in paths
  64. -s --symlink Create symlinks for paths read on the input fifo
  65. -v --verbose Increase program verbosity (printed on stderr)
  66. -d --dry-run Do not generate a new db-file
  67. -n --no-delete Do not track deleted files
  68. --no-move Do not generate MOVE (only COPY + DELETE)
  69. --help This help screen
  70. NOTES
  71. mddiff is a low level utility, used by smd-server and smd-client. You
  72. should use higher level tools like smd-pull(1), smd-push(1) and smd-loop(1)
  73. SEE ALSO
  74. smd-client(1), smd-server(1), smd-pull(1), smd-push(1), smd-loop(1)
  75. AUTHOR
  76. Enrico Tassi <>