- 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).
+ <b>--format=(sup|batch-tag)</b>
+ Notmuch restore supports two plain text dump formats, both with
+ one message-id per line, followed by a list of tags.
+
+ <b>batch-tag</b>
+ The default <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-mes‐</u>
+ <u>sage-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 whitespace 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 sin‐
+ gle message-id query is mandatory for <a href='../notmuch-restore-1/'>notmuch-restore</a>(1).
+
+ <b>sup</b> The <b>sup</b> dump file format is specifically chosen to be
+ compatible 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
+ (malformed) message-ids may contain arbitrary non-null
+ characters. Note also that tags with spaces will not be
+ correctly restored with this format.
+
+ 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>