<h2>SYNOPSIS</h2>
<pre>
- <b>notmuch</b> <b>dump</b> [ --output=<<u>filename</u>> ] [--] [ <<u>search-term</u>>...]
+ <b>notmuch</b> <b>dump</b> [<b>--format=(sup|batch-tag)</b>] [--] [ --output=<<u>filename</u>> ]
+ [--] [ <<u>search-term</u>>...]
</pre>
<h2>DESCRIPTION</h2>
Output is to the given filename, if any, or to stdout.
- These tags are the only data in the notmuch database that can't be
- recreated from the messages themselves. The output of notmuch dump is
- therefore the only critical thing to backup (and much more friendly to
+ These tags are the only data in the notmuch database that can't be
+ recreated from the messages themselves. The output of notmuch dump is
+ therefore the only critical thing to backup (and much more friendly to
incremental backup than the native database files.)
- With no search terms, a dump of all messages in the database will be
- generated. A "--" argument instructs notmuch that the remaining argu-
- ments are search terms.
+ <b>--format=(sup|batch-tag)</b>
- See <a href='../notmuch-search-terms-7/'>notmuch-search-terms</a>(7) for details of the supported syntax for
- <search-terms>.
+ Notmuch restore supports two plain text dump formats, both with one
+ message-id per line, followed by a list of tags.
+
+ <b>sup</b> The <b>sup</b> dump file format is specifically chosen to be compati-
+ ble with the format of files produced by sup-dump. So if
+ you've previously been using sup for mail, then the <b>notmuch</b>
+ <b>restore</b> command provides you a way to import all of your tags
+ (or labels as sup calls them). Each line has the following
+ form
+
+ <<u>message-id</u>> <b>(</b> <<u>tag</u>> ... <b>)</b>
+
+ with zero or more tags are separated by spaces. Note that (mal-
+ formed) message-ids may contain arbitrary non-null characters.
+ Note also that tags with spaces will not be correctly restored
+ with this format.
+
+ <b>batch-tag</b>
+
+ The <b>batch-tag</b> dump format is intended to more robust against
+ malformed message-ids and tags containing whitespace or non-
+ <b>ascii</b>(7) characters. Each line has the form
+
+ +<<u>encoded-tag</u>> +<<u>encoded-tag</u>> ... -- id:<<u>quoted-message-id</u>>
+
+ Tags are hex-encoded by replacing every byte not matching the
+ regex <b>[A-Za-z0-9@=.,</b>_<b>+-]</b> with <b>%nn</b> where nn is the two digit hex
+ encoding. The message ID is a valid Xapian query, quoted using
+ Xapian boolean term quoting rules: if the ID contains whites-
+ pace or a close paren or starts with a double quote, it must be
+ enclosed in double quotes and double quotes inside the ID must
+ be doubled. The astute reader will notice this is a special
+ case of the batch input format for <a href='../notmuch-tag-1/'>notmuch-tag</a>(1); note that
+ the single message-id query is mandatory for <a href='../notmuch-restore-1/'>notmuch-</a>
+ <a href='../notmuch-restore-1/'>restore</a>(1).
+
+ With no search terms, a dump of all messages in the database will
+ be generated. A "--" argument instructs notmuch that the remaining
+ arguments are search terms.
+
+ See <a href='../notmuch-search-terms-7/'>notmuch-search-terms</a>(7) for details of the supported syntax for
+ <search-terms>.
</pre>
<h2>SEE ALSO</h2>
<pre>
<a href='../notmuch-1/'>notmuch</a>(1), <a href='../notmuch-config-1/'>notmuch-config</a>(1), <a href='../notmuch-count-1/'>notmuch-count</a>(1), <a href='../notmuch-hooks-5/'>notmuch-hooks</a>(5), <a href='../notmuch-new-1/'>not-</a>
- <a href='../notmuch-new-1/'>much-new</a>(1), <a href='../notmuch-reply-1/'>notmuch-reply</a>(1), <a href='../notmuch-restore-1/'>notmuch-restore</a>(1), <a href='../notmuch-search-1/'>notmuch-search</a>(1),
+ <a href='../notmuch-new-1/'>much-new</a>(1), <a href='../notmuch-reply-1/'>notmuch-reply</a>(1), <a href='../notmuch-restore-1/'>notmuch-restore</a>(1), <a href='../notmuch-search-1/'>notmuch-search</a>(1),
<a href='../notmuch-search-terms-7/'>notmuch-search-terms</a>(7), <a href='../notmuch-show-1/'>notmuch-show</a>(1), <a href='../notmuch-tag-1/'>notmuch-tag</a>(1)
</pre>
-<h2>Notmuch 0.14</h2>
+<h2>Notmuch 0.15.2</h2>