unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
From: Jani Nikula <jani@nikula.org>
To: david@tethera.net, notmuch@notmuchmail.org
Cc: David Bremner <bremner@debian.org>
Subject: Re: [Patch v2 16/17] notmuch-{dump, restore}.1: document new format options
Date: Sun, 02 Dec 2012 15:40:51 +0200	[thread overview]
Message-ID: <87wqx0d124.fsf@nikula.org> (raw)
In-Reply-To: <1353792017-31459-17-git-send-email-david@tethera.net>

On Sat, 24 Nov 2012, david@tethera.net wrote:
> From: David Bremner <bremner@debian.org>
>
> More or less arbitrarily, notmuch-dump.1 gets the more detailed
> description of the format.
> ---
>  man/man1/notmuch-dump.1    |   58 +++++++++++++++++++++++++++++++++++++++++++
>  man/man1/notmuch-restore.1 |   59 +++++++++++++++++++++++++++++++++++++++-----
>  2 files changed, 111 insertions(+), 6 deletions(-)
>
> diff --git a/man/man1/notmuch-dump.1 b/man/man1/notmuch-dump.1
> index 230deec..9f59905 100644
> --- a/man/man1/notmuch-dump.1
> +++ b/man/man1/notmuch-dump.1
> @@ -5,6 +5,7 @@ notmuch-dump \- creates a plain-text dump of the tags of each message
>  .SH SYNOPSIS
>  
>  .B "notmuch dump"
> +.RB  [ "\-\-format=(sup|batch-tag)"  "] [--]"
>  .RI "[ --output=<" filename "> ] [--]"
>  .RI "[ <" search-term ">...]"
>  
> @@ -19,6 +20,63 @@ 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.)
>  
> +.TP 4
> +.B \-\-format=(sup|batch-tag)
> +
> +Notmuch restore supports two plain text dump formats, both with one message-id
> +per line, followed by a list of tags.

"followed by tags" is not entirely accurate for batch-tag.

> +
> +.RS 4
> +.TP 4
> +.B sup
> +
> +The
> +.B sup
> +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 restore"
> +command provides you a way to import all of your tags (or labels as
> +sup calls them).
> +Each line has the following form

Should we deprecate the sup format for new dumps at the same time? Issue
a warning message on dumping too (unless --format is explicitly
specified), telling about the new batch-tag format. I think we should
eventually make batch-tag the default.

> +
> +.RS 4
> +.RI < message-id >
> +.B (
> +.RI < tag "> ..."
> +.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.
> +
> +.RE
> +
> +.RE
> +.RS 4
> +.TP 4
> +.B batch-tag
> +
> +The
> +.B batch-tag
> +dump format is intended to more robust against malformed message-ids
> +and tags containing whitespace or non-\fBascii\fR(7) characters.
> +Each line has the form
> +
> +.RS 4
> +.RI "+<" "encoded-tag" "> " "" "+<" "encoded-tag" "> ... -- " "" " <" encoded-message-id >

Mention that the id: prefix is present in dump and required in restore.

BR,
Jani.

> +
> +where encoded means that every byte not matching the regex
> +.B [A-Za-z0-9+-_@=.:,]
> +is replace by
> +.B %nn
> +where nn is the two digit hex encoding.
> +The astute reader will notice this is a special case of the batch input
> +format for \fBnotmuch-tag\fR(1).
> +
> +.RE
> +
> +
>  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.
> diff --git a/man/man1/notmuch-restore.1 b/man/man1/notmuch-restore.1
> index 2fa8733..3860829 100644
> --- a/man/man1/notmuch-restore.1
> +++ b/man/man1/notmuch-restore.1
> @@ -6,6 +6,7 @@ notmuch-restore \- restores the tags from the given file (see notmuch dump)
>  
>  .B "notmuch restore"
>  .RB [ "--accumulate" ]
> +.RB [ "--format=(auto|batch-tag|sup)" ]
>  .RI "[ --input=<" filename "> ]"
>  
>  .SH DESCRIPTION
> @@ -15,19 +16,51 @@ Restores the tags from the given file (see
>  
>  The input is read from the given filename, if any, or from stdin.
>  
> -Note: The dump file format is specifically chosen to be
> +
> +Supported options for
> +.B restore
> +include
> +.RS 4
> +.TP 4
> +.B \-\-accumulate
> +
> +The union of the existing and new tags is applied, instead of
> +replacing each message's tags as they are read in from the dump file.
> +
> +.RE
> +.RS 4
> +.TP 4
> +.B \-\-format=(sup|batch-tag|auto)
> +
> +Notmuch restore supports two plain text dump formats, with one message-id
> +per line, and a list of tags.
> +For details of the actual formats, see \fBnotmuch-dump\fR(1).
> +
> +.RS 4
> +.TP 4
> +.B sup
> +
> +The
> +.B sup
> +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 restore"
>  command provides you a way to import all of your tags (or labels as
>  sup calls them).
>  
> -The --accumulate switch causes the union of the existing and new tags to be
> -applied, instead of replacing each message's tags as they are read in from the
> -dump file.
> +.RE
> +.RS 4
> +.TP 4
> +.B batch-tag
>  
> -See \fBnotmuch-search-terms\fR(7)
> -for details of the supported syntax for <search-terms>.
> +The
> +.B batch-tag
> +dump format is intended to more robust against malformed message-ids
> +and tags containing whitespace or non-\fBascii\fR(7) characters.  This
> +format hex-escapes all characters those outside of a small character
> +set, intended to be suitable for e.g. pathnames in most UNIX-like
> +systems.
>  
>  .B "notmuch restore"
>  updates the maildir flags according to tag changes if the
> @@ -36,6 +69,20 @@ configuration option is enabled. See \fBnotmuch-config\fR(1) for
>  details.
>  
>  .RE
> +
> +.RS 4
> +.TP 4
> +.B auto
> +
> +This option (the default) tries to guess the format from the
> +input. For correctly formed input in either supported format, this
> +heuristic, based the fact that batch-tag format contains no parentheses,
> +should be accurate.
> +
> +.RE
> +
> +.RE
> +
>  .SH SEE ALSO
>  
>  \fBnotmuch\fR(1), \fBnotmuch-config\fR(1), \fBnotmuch-count\fR(1),
> -- 
> 1.7.10.4
>
> _______________________________________________
> notmuch mailing list
> notmuch@notmuchmail.org
> http://notmuchmail.org/mailman/listinfo/notmuch

  reply	other threads:[~2012-12-02 13:41 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-24 21:20 V2 of batch-tagging plus new dump/restore david
2012-11-24 21:20 ` [Patch v2 01/17] hex-escape: (en|de)code strings to/from restricted character set david
2012-11-30 21:43   ` Jani Nikula
2012-11-24 21:20 ` [Patch v2 02/17] test/hex-xcode: new test binary david
2012-11-30 21:51   ` Jani Nikula
2012-11-24 21:20 ` [Patch v2 03/17] test/hex-escaping: new test for hex escaping routines david
2012-11-30 21:59   ` Jani Nikula
2012-11-24 21:20 ` [Patch v2 04/17] test: add database routines for testing david
2012-11-30 22:21   ` Jani Nikula
2012-11-24 21:20 ` [Patch v2 05/17] test: add generator for random "stub" messages david
2012-11-30 23:18   ` Jani Nikula
2012-11-24 21:20 ` [Patch v2 06/17] test: add broken roundtrip test david
2012-11-30 23:23   ` Jani Nikula
2012-11-30 23:43   ` Jani Nikula
2012-11-24 21:20 ` [Patch v2 07/17] notmuch-dump: add --format=(batch-tag|sup) david
2012-11-30 23:37   ` Jani Nikula
2012-11-24 21:20 ` [Patch v2 08/17] util: add string-util.[ch] david
2012-11-30 23:41   ` Jani Nikula
2012-11-24 21:20 ` [Patch v2 09/17] tag-util.[ch]: New files for common tagging routines david
2012-11-24 23:27   ` Tomi Ollila
2012-11-25  1:18     ` David Bremner
2012-11-25 22:19   ` Mark Walters
2012-11-30  0:17     ` David Bremner
2012-12-01  4:30       ` Austin Clements
2012-12-01 23:28   ` Jani Nikula
2012-11-24 21:20 ` [Patch v2 10/17] cli: add support for batch tagging operations to "notmuch tag" david
2012-12-01 23:55   ` Jani Nikula
2012-11-24 21:20 ` [Patch v2 11/17] test: add test for notmuch tag --batch option david
2012-11-25 22:50   ` Mark Walters
2012-11-30  4:11     ` [PATCH] " david
2012-11-30  7:29       ` Tomi Ollila
2012-12-02  0:06       ` Jani Nikula
2012-11-24 21:20 ` [Patch v2 12/17] man: document notmuch tag --batch, --input options david
2012-11-25 22:48   ` Mark Walters
2012-12-02 13:21   ` Jani Nikula
2012-11-24 21:20 ` [Patch v2 13/17] notmuch-restore: add support for input format 'batch-tag' david
2012-12-02 13:29   ` Jani Nikula
2012-11-24 21:20 ` [Patch v2 14/17] test: update dump-restore roundtripping test for batch-tag format david
2012-11-24 23:17   ` Tomi Ollila
2012-11-25  1:16     ` [PATCH] " david
2012-11-24 21:20 ` [Patch v2 15/17] test: second set of dump/restore --format=batch-tag tests david
2012-11-24 21:20 ` [Patch v2 16/17] notmuch-{dump, restore}.1: document new format options david
2012-12-02 13:40   ` Jani Nikula [this message]
2012-11-24 21:20 ` [Patch v2 17/17] tag-util: optimization of tag application david
2012-12-02 14:42   ` Jani Nikula
2012-12-02 14:47 ` V2 of batch-tagging plus new dump/restore Jani Nikula

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://notmuchmail.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87wqx0d124.fsf@nikula.org \
    --to=jani@nikula.org \
    --cc=bremner@debian.org \
    --cc=david@tethera.net \
    --cc=notmuch@notmuchmail.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://yhetil.org/notmuch.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).