<feed xmlns='http://www.w3.org/2005/Atom'>
<title>notmuch/notmuch-dump.c, branch 0.18</title>
<subtitle>thread-based email index, search, and tagging</subtitle>
<id>https://git.notmuchmail.org/git/notmuch/atom?h=0.18</id>
<link rel='self' href='https://git.notmuchmail.org/git/notmuch/atom?h=0.18'/>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/'/>
<updated>2014-04-12T10:59:44Z</updated>
<entry>
<title>dump: support gzipped and atomic output</title>
<updated>2014-04-12T10:59:44Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2014-03-29T01:14:51Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=3c13bc0321baaf340663779d6fce2b1f34c1c2c3'/>
<id>urn:sha1:3c13bc0321baaf340663779d6fce2b1f34c1c2c3</id>
<content type='text'>
The main goal is to support gzipped output for future internal
calls (e.g. from notmuch-new) to notmuch_database_dump.

The additional dependency is not very heavy since xapian already pulls
in zlib.

We want the dump to be "atomic", in the sense that after running the
dump file is either present and complete, or not present.  This avoids
certain classes of mishaps involving overwriting a good backup with a
bad or partial one.
</content>
</entry>
<entry>
<title>cli: abstract dump file open from the dump command</title>
<updated>2014-03-30T22:23:16Z</updated>
<author>
<name>Jani Nikula</name>
<email>jani@nikula.org</email>
</author>
<published>2014-03-25T17:48:57Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=3863755f6d9f3e7666c1484822384c036a4426c3'/>
<id>urn:sha1:3863755f6d9f3e7666c1484822384c036a4426c3</id>
<content type='text'>
Also expose the dump function to the rest of notmuch. No functional
changes, except for slight improvement in error handling.
</content>
</entry>
<entry>
<title>cli: abstract database dumping from the dump command</title>
<updated>2014-03-30T22:22:21Z</updated>
<author>
<name>Jani Nikula</name>
<email>jani@nikula.org</email>
</author>
<published>2014-03-25T17:07:49Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=2a79d81211664ca3f0cd1a847795d48bd66b8a3d'/>
<id>urn:sha1:2a79d81211664ca3f0cd1a847795d48bd66b8a3d</id>
<content type='text'>
No functional changes, except for slight improvement in error
handling.
</content>
</entry>
<entry>
<title>notmuch dump: default to batch-tag format.</title>
<updated>2014-01-24T12:52:09Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2014-01-23T13:02:46Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=f4167e6de86d071cd94721c2acc1397bf291a13c'/>
<id>urn:sha1:f4167e6de86d071cd94721c2acc1397bf291a13c</id>
<content type='text'>
Although we didn't formally deprecate the old format, the new one has
been available for a year.
</content>
</entry>
<entry>
<title>cli: clean up exit status code returned by the cli commands</title>
<updated>2014-01-18T18:45:26Z</updated>
<author>
<name>Jani Nikula</name>
<email>jani@nikula.org</email>
</author>
<published>2014-01-10T21:28:53Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=c7453773064efbd0b2cd17b15ba483edbd28ce1e'/>
<id>urn:sha1:c7453773064efbd0b2cd17b15ba483edbd28ce1e</id>
<content type='text'>
Apart from the status codes for format mismatches, the non-zero exit
status codes have been arbitrary. Make the cli consistently return
either EXIT_SUCCESS or EXIT_FAILURE.
</content>
</entry>
<entry>
<title>cli: move config open/close to main() from subcommands</title>
<updated>2013-03-08T11:54:41Z</updated>
<author>
<name>Jani Nikula</name>
<email>jani@nikula.org</email>
</author>
<published>2013-03-03T21:55:09Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=4ef2106792439f5ade157b3ba3b8f7fa86fcb3ed'/>
<id>urn:sha1:4ef2106792439f5ade157b3ba3b8f7fa86fcb3ed</id>
<content type='text'>
This allows specifying config file as a top level argument to notmuch,
and generally makes it possible to override config file options in
main(), without having to touch the subcommands.

If the config file does not exist, one will be created for the notmuch
main command and setup and help subcommands. Help is special in this
regard; the config is created just to avoid errors about missing
config, but it will not be saved.

This also makes notmuch config the talloc context for subcommands.
</content>
</entry>
<entry>
<title>cli: config: make notmuch_config_open() "is new" parameter input only</title>
<updated>2013-03-07T13:39:12Z</updated>
<author>
<name>Jani Nikula</name>
<email>jani@nikula.org</email>
</author>
<published>2013-03-03T21:55:08Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=e76f6517de020783d828be59f461f1d4f465c4b4'/>
<id>urn:sha1:e76f6517de020783d828be59f461f1d4f465c4b4</id>
<content type='text'>
We now have a notmuch_config_is_new() function to query whether a
config was created or not. Change the notmuch_config_open() is_new
parameter into boolean create_new to determine whether the function
should create a new config if one doesn't exist. This reduces the
complexity of the API.
</content>
</entry>
<entry>
<title>dump/restore: Use Xapian queries for batch-tag format</title>
<updated>2013-01-07T02:40:32Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@MIT.EDU</email>
</author>
<published>2013-01-06T20:22:41Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=425e2bc81263230df301c67d93c64ff9685ff840'/>
<id>urn:sha1:425e2bc81263230df301c67d93c64ff9685ff840</id>
<content type='text'>
This switches the new batch-tag format away from using a home-grown
hex-encoding scheme for message IDs in the dump to simply using Xapian
queries with Xapian quoting syntax.

This has a variety of advantages beyond presenting a cleaner and more
consistent interface.  Foremost is that it will dramatically simplify
the quoting for batch tagging, which shares the same input format.
While the hex-encoding is no better or worse for the simple ID queries
used by dump/restore, it becomes onerous for general-purpose queries
used in batch tagging.  It also better handles strange cases like
"id:foo and bar", since this is no longer syntactically valid.
</content>
</entry>
<entry>
<title>dump: Disallow \n in message IDs</title>
<updated>2013-01-07T02:40:01Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@MIT.EDU</email>
</author>
<published>2013-01-06T20:22:40Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=d08c714b6a172cf0018bee4f60aff069d5508d4e'/>
<id>urn:sha1:d08c714b6a172cf0018bee4f60aff069d5508d4e</id>
<content type='text'>
When we switch to using regular Xapian queries in the dump format, \n
will cause problems, so we disallow it.  Specially, while Xapian can
quote and parse queries containing \n without difficultly, quoted
queries containing \n still span multiple lines, which breaks the
line-orientedness of the dump format.  Strictly speaking, we could
still round-trip these, but it would significantly complicate restore
as well as scripts that deal with tag dumps.  This complexity would
come at absolutely no benefit: because of the RFC 2822 unfolding
rules, no amount of standards negligence can produce a message with a
message ID containing a line break (not even Outlook can do it!).

Hence, we simply disallow it.
</content>
</entry>
<entry>
<title>notmuch-dump: add --format=(batch-tag|sup)</title>
<updated>2012-12-08T14:40:54Z</updated>
<author>
<name>David Bremner</name>
<email>bremner@debian.org</email>
</author>
<published>2012-06-14T22:08:42Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=bfe66da4321ce63b6fb3693eddf809e2e0532888'/>
<id>urn:sha1:bfe66da4321ce63b6fb3693eddf809e2e0532888</id>
<content type='text'>
sup is the old format, and remains the default, at least until
restore is converted to parse this format.

Each line of the batch-tag format is modelled on the syntax of notmuch tag:
- "notmuch tag" is omitted from the front of the line
- The dump format only uses query strings of a single message-id.
- Each space seperated tag/message-id is 'hex-encoded' to remove
  trouble-making characters.
- It is permitted (and will be useful) for there to be no tags before
  the query.

In particular this format won't have the same problem with e.g. spaces
in message-ids or tags; they will be round-trip-able.
</content>
</entry>
</feed>
