<feed xmlns='http://www.w3.org/2005/Atom'>
<title>notmuch/lib/notmuch-private.h, branch 0.2</title>
<subtitle>thread-based email index, search, and tagging</subtitle>
<id>https://git.notmuchmail.org/git/notmuch/atom?h=0.2</id>
<link rel='self' href='https://git.notmuchmail.org/git/notmuch/atom?h=0.2'/>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/'/>
<updated>2010-03-09T17:22:29Z</updated>
<entry>
<title>lib: Rename iterator functions to prepare for reverse iteration.</title>
<updated>2010-03-09T17:22:29Z</updated>
<author>
<name>Carl Worth</name>
<email>cworth@cworth.org</email>
</author>
<published>2010-03-09T17:22:29Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=4e5d2f22db290a830c0267f34b519c6138af00ed'/>
<id>urn:sha1:4e5d2f22db290a830c0267f34b519c6138af00ed</id>
<content type='text'>
We rename 'has_more' to 'valid' so that it can function whether
iterating in a forward or reverse direction. We also rename
'advance' to 'move_to_next' to setup parallel naming with
the proposed functions 'move_to_first', 'move_to_last', and
'move_to_previous'.
</content>
</entry>
<entry>
<title>lib: Split the database upgrade into two phases for safer operation.</title>
<updated>2010-01-09T19:13:12Z</updated>
<author>
<name>Carl Worth</name>
<email>cworth@cworth.org</email>
</author>
<published>2010-01-09T19:13:12Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=d12801c8b4d04a50fcb912b75017244fb09658e8'/>
<id>urn:sha1:d12801c8b4d04a50fcb912b75017244fb09658e8</id>
<content type='text'>
The first phase copies data from the old format to the new format
without deleting anything. This allows an old notmuch to still use the
database if the upgrade process gets interrupted. The second phase
performs the deletion (after updating the database version number). If
the second phase is interrupted, there will be some unused data in the
database, but it shouldn't cause any actual harm.
</content>
</entry>
<entry>
<title>lib: Implement versioning in the database and provide upgrade function.</title>
<updated>2010-01-08T02:26:31Z</updated>
<author>
<name>Carl Worth</name>
<email>cworth@cworth.org</email>
</author>
<published>2010-01-08T02:26:31Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=909f52bd8c4bdfa11cd3e75e3d0959e0293689bd'/>
<id>urn:sha1:909f52bd8c4bdfa11cd3e75e3d0959e0293689bd</id>
<content type='text'>
The recent support for renames in the database is our first time
(since notmuch has had more than a single user) that we have a
database format change. To support smooth upgrades we now encode a
database format version number in the Xapian metadata.

Going forward notmuch will emit a warning if used to read from a
database with a newer version than it natively supports, and will
refuse to write to a database with a newer version.

The library also provides functions to query the database format
version:

	notmuch_database_get_version

to ask if notmuch wants a newer version than that:

	notmuch_database_needs_upgrade

and a function to actually perform that upgrade:

	notmuch_database_upgrade
</content>
</entry>
<entry>
<title>Prefer READ_ONLY consistently over READONLY.</title>
<updated>2010-01-07T18:29:05Z</updated>
<author>
<name>Carl Worth</name>
<email>cworth@cworth.org</email>
</author>
<published>2010-01-07T18:29:05Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=807aef93d3bf02884f7a37b44b894c11d9e1df58'/>
<id>urn:sha1:807aef93d3bf02884f7a37b44b894c11d9e1df58</id>
<content type='text'>
Previously we had NOTMUCH_DATABASE_MODE_READ_ONLY but
NOTMUCH_STATUS_READONLY_DATABASE which was ugly and confusing. Rename
the latter to NOTMUCH_STATUS_READ_ONLY_DATABASE for consistency.
</content>
</entry>
<entry>
<title>lib: Consolidate checks for read-only database.</title>
<updated>2010-01-07T18:19:44Z</updated>
<author>
<name>Carl Worth</name>
<email>cworth@cworth.org</email>
</author>
<published>2010-01-07T18:19:44Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=f93b7218c3e2d11c5b3cdd4c367a42ca7a7ede77'/>
<id>urn:sha1:f93b7218c3e2d11c5b3cdd4c367a42ca7a7ede77</id>
<content type='text'>
Previously, many checks were deep in the library just before a cast
operation. These have now been replaced with internal errors and new
checks have instead been added at the beginning of all top-levelentry
points requiring a read-write database.

The new checks now also use a single function for checking and
printing the error message. This will give us a convenient location to
extend the check, (such as based on database version as well).
</content>
</entry>
<entry>
<title>lib: Implement new notmuch_directory_t API.</title>
<updated>2010-01-06T18:32:06Z</updated>
<author>
<name>Carl Worth</name>
<email>cworth@cworth.org</email>
</author>
<published>2010-01-05T21:29:23Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=d807e28f43579ecc91aa40ae3e42760991c2f810'/>
<id>urn:sha1:d807e28f43579ecc91aa40ae3e42760991c2f810</id>
<content type='text'>
This new directory ojbect provides all the infrastructure needed to
detect when files or directories are deleted or renamed. There's still
code needed on top of this (within "notmuch new") to actually do that
detection.
</content>
</entry>
<entry>
<title>database: Abstract _filename_to_direntry from _add_message</title>
<updated>2010-01-06T18:32:05Z</updated>
<author>
<name>Carl Worth</name>
<email>cworth@cworth.org</email>
</author>
<published>2009-12-21T23:09:56Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=498edff50373785c9dcc889d0fb6bc9bfc13dfcb'/>
<id>urn:sha1:498edff50373785c9dcc889d0fb6bc9bfc13dfcb</id>
<content type='text'>
The code to map a filename to a direntry is something that we're going
to want in a future _remove_message function, so put it in a new
function _notmuch_database_filename_to_direntry .
</content>
</entry>
<entry>
<title>database: Allowing storing  multiple filenames for a single message ID.</title>
<updated>2010-01-06T18:32:05Z</updated>
<author>
<name>Carl Worth</name>
<email>cworth@cworth.org</email>
</author>
<published>2009-12-21T20:08:46Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=1376a90db622b71e0997fca52c50ccf34faeed22'/>
<id>urn:sha1:1376a90db622b71e0997fca52c50ccf34faeed22</id>
<content type='text'>
The library interface is unchanged so far, (still just
notmuch_database_add_message), but internally, the old
_set_filename function is now _add_filename instead.
</content>
</entry>
<entry>
<title>database: Store mail filename as a new 'direntry' term, not as 'data'.</title>
<updated>2010-01-06T18:32:05Z</updated>
<author>
<name>Carl Worth</name>
<email>cworth@cworth.org</email>
</author>
<published>2009-12-21T16:23:26Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=6ca6c089e9df7affe6bee0392197509a24ab2546'/>
<id>urn:sha1:6ca6c089e9df7affe6bee0392197509a24ab2546</id>
<content type='text'>
Instead of storing the complete message filename in the data portion
of a mail document we now store a 'direntry' term that contains the
document ID of a directory document and also the basename of the
message filename within that directory. This will allow us to easily
store multple filenames for a single message, and will also allow us
to find mail documents for files that previously existed in a
directory but that have since been deleted.
</content>
</entry>
<entry>
<title>database: Split _find_parent_id into _split_path and _find_directory_id</title>
<updated>2010-01-06T18:32:05Z</updated>
<author>
<name>Carl Worth</name>
<email>cworth@cworth.org</email>
</author>
<published>2009-12-21T16:14:52Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=84742d86ab2fd3e5b5b601f073351454b993575e'/>
<id>urn:sha1:84742d86ab2fd3e5b5b601f073351454b993575e</id>
<content type='text'>
Some pending commits want the _split_path functionality separate from
mapping a directory to a document ID. The split_path function now
returns the basename as well as the directory name.
</content>
</entry>
</feed>
