<feed xmlns='http://www.w3.org/2005/Atom'>
<title>notmuch/notmuch-new.c, branch 0.23.3</title>
<subtitle>thread-based email index, search, and tagging</subtitle>
<id>https://git.notmuchmail.org/git/notmuch/atom?h=0.23.3</id>
<link rel='self' href='https://git.notmuchmail.org/git/notmuch/atom?h=0.23.3'/>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/'/>
<updated>2016-11-26T01:09:32Z</updated>
<entry>
<title>cli: consider files vanishing during notmuch new non-fatal</title>
<updated>2016-11-26T01:09:32Z</updated>
<author>
<name>Jani Nikula</name>
<email>jani@nikula.org</email>
</author>
<published>2016-11-21T20:14:33Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=f5185881f7b01f67b5b64218804749b733f08d44'/>
<id>urn:sha1:f5185881f7b01f67b5b64218804749b733f08d44</id>
<content type='text'>
If some software other than notmuch new renames or removes files
during the notmuch new scan (specifically after scandir but before
indexing the file), keep going instead of bailing out. Failing to
index the file is just a race condition between notmuch and the other
software; the rename could happen after the notmuch new scan
anyway. It's not fatal, and we'll catch the renamed files on the next
scan.

Add a new exit code for when files vanished, so the caller has a
chance to detect the race and re-run notmuch new to recover.

Reported by Paul Wise &lt;pabs@debian.org&gt; at
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=843127
</content>
</entry>
<entry>
<title>CLI: add properties to dump output</title>
<updated>2016-09-21T21:14:25Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2016-06-13T01:05:54Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=b7345d277ec5f562000c0e740e6515c2a84f9c76'/>
<id>urn:sha1:b7345d277ec5f562000c0e740e6515c2a84f9c76</id>
<content type='text'>
Part of providing extensibility via properties is to make sure that user
data is not lost. Thus we need to be able to dump and restore
properties.
</content>
</entry>
<entry>
<title>Use https instead of http where possible</title>
<updated>2016-06-05T11:32:17Z</updated>
<author>
<name>Daniel Kahn Gillmor</name>
<email>dkg@fifthhorseman.net</email>
</author>
<published>2016-06-02T16:26:14Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=6a833a6e83865f6999707cc30768d07e1351c2cb'/>
<id>urn:sha1:6a833a6e83865f6999707cc30768d07e1351c2cb</id>
<content type='text'>
Many of the external links found in the notmuch source can be resolved
using https instead of http.  This changeset addresses as many as i
could find, without touching the e-mail corpus or expected outputs
found in tests.
</content>
</entry>
<entry>
<title>CLI: add optional config data to dump output.</title>
<updated>2016-05-25T10:07:56Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2016-03-22T10:54:50Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=e042a25a3fd8706b6e1ee7bdf527bb17ecb74c6a'/>
<id>urn:sha1:e042a25a3fd8706b6e1ee7bdf527bb17ecb74c6a</id>
<content type='text'>
Note that it changes the default dump output format, but doesn't break
existing notmuch-restore. It might break user scripts though.
</content>
</entry>
<entry>
<title>cli: remove leftover dir variable</title>
<updated>2016-05-02T10:33:13Z</updated>
<author>
<name>Jani Nikula</name>
<email>jani@nikula.org</email>
</author>
<published>2016-04-15T19:29:15Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=73339ade993b7ae14d26808cfd6efcd0da712f3d'/>
<id>urn:sha1:73339ade993b7ae14d26808cfd6efcd0da712f3d</id>
<content type='text'>
No functional changes.
</content>
</entry>
<entry>
<title>cli/new: add better error messages for FILE_ERROR</title>
<updated>2016-03-30T02:07:00Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2016-03-30T02:03:02Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=6e6bafed0f88f914da34ec55087418756e485e52'/>
<id>urn:sha1:6e6bafed0f88f914da34ec55087418756e485e52</id>
<content type='text'>
The code in add_file seems to assume that NOTMUCH_STATUS_FILE_ERROR is
never returned from add_message. This turns out to be false (although it
seems to only happen in certain fairly rare race conditions).
</content>
</entry>
<entry>
<title>cli: fix function name in notmuch new debug logging</title>
<updated>2015-12-30T15:28:30Z</updated>
<author>
<name>Jani Nikula</name>
<email>jani@nikula.org</email>
</author>
<published>2015-11-03T19:49:29Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=b645f416059f128ea49991745b648c7ffa045ccc'/>
<id>urn:sha1:b645f416059f128ea49991745b648c7ffa045ccc</id>
<content type='text'>
add_files_recursive has been renamed add_files long ago.
</content>
</entry>
<entry>
<title>cli: delete directory documents on directory removal</title>
<updated>2015-10-14T10:55:41Z</updated>
<author>
<name>Jani Nikula</name>
<email>jani@nikula.org</email>
</author>
<published>2015-09-25T20:48:46Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=e26d99dc7b02f33299c281f97a13deaef802bc7a'/>
<id>urn:sha1:e26d99dc7b02f33299c281f97a13deaef802bc7a</id>
<content type='text'>
There was a problem with the directory documents being left behind when
the filesystem directory was removed. This was worked around in [1].
However, that ignored the fact that the directory documents are also
still listed by notmuch_directory_get_child_directories() leading to
confusing results when running notmuch new. The directory documents are
found and queued for removal over and over again.

Fix the problem for real by removing the directory documents. This fixes
the tests flagged as broken in [2].

The (non-deterministic) hack test from [3] also still passes with this
change.

[1] commit acd66cdec075312944e527febd46382e54d99367
[2] commit ed9ceda623d3f22fb66365b33db63c5c982067d3
[3] id:1441445731-4362-1-git-send-email-jani@nikula.org
</content>
</entry>
<entry>
<title>cli: use designated initializer to initialize add_files_state</title>
<updated>2015-09-29T11:25:25Z</updated>
<author>
<name>Jani Nikula</name>
<email>jani@nikula.org</email>
</author>
<published>2015-09-25T18:47:35Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=847792ec29709f3d3c0e94cdd22b60a253e6de8a'/>
<id>urn:sha1:847792ec29709f3d3c0e94cdd22b60a253e6de8a</id>
<content type='text'>
The side effect is that all of add_files_state will be initialized to
zero, removing any lingering doubt that some of it might not be
initialized. It's not a small struct, and the initialization is
scattered around a bit, so this makes the code more readable.
</content>
</entry>
<entry>
<title>cli: reset db directory mtime upon directory removal</title>
<updated>2015-09-07T12:28:00Z</updated>
<author>
<name>Jani Nikula</name>
<email>jani@nikula.org</email>
</author>
<published>2015-09-05T09:35:31Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=acd66cdec075312944e527febd46382e54d99367'/>
<id>urn:sha1:acd66cdec075312944e527febd46382e54d99367</id>
<content type='text'>
The library does not have a function to remove a directory document
for a path. Usually this doesn't matter except for a slight waste of
space. However, if the same directory gets added to the filesystem
again, the old directory document is found with the old mtime. Reset
the directory mtime on removal to avoid problems.

The corner case that can hit this problem is renaming directories back
and forth. Renaming does not change the mtime of the directory in the
filesystem, and thus the old db directory document mtime may match the
fs mtime of the directory.

The long term fix might be to add a library function to remove a
directory document, however this is a much simpler and faster fix for
the time being.
</content>
</entry>
</feed>
