Update to 0.17:

Notmuch 0.17 (2013-12-30)
=========================

Incompatible change in SHA1 computation
---------------------------------------

Previously on big endian architectures like sparc and powerpc the
computation of SHA1 hashes was incorrect. This meant that messages
with overlong or missing message-ids were given different computed
message-ids than on more common little endian architectures like i386
and amd64.  If you use notmuch on a big endian architecture, you are
strongly advised to make a backup of your tags using `notmuch dump`
before this upgrade. You can locate the affected files using something
like:

    notmuch dump | \
      awk '/^notmuch-sha1-[0-9a-f]{40} / \
        {system("notmuch search --exclude=false --output=files id:" $1)}'

Command-Line Interface
----------------------

New options to better support handling duplicate messages

  If more than one message file is associated with a message-id,
  `notmuch search --output=files` will print all of them. A new
  `--duplicate=N` option can be used to specify which duplicate to
  print for each message.

  `notmuch count` now supports `--output=files` option to output the
  number of files associated with matching messages. This may be
  bigger than the number of matching messages due to duplicates
  (i.e. multiple files having the same message-id).

Improved `notmuch new` performance for unchanged folders

  `notmuch new` now skips over unchanged folders more efficiently,
  which can substantially improve the performance of checking for new
  mail in some situations (like NFS-mounted Maildirs).

`notmuch reply --format=text` RFC 2047-encodes headers

  Previously, this used a mix of standard MIME encoding for the reply
  body and UTF-8 for the headers.  Now, the text format reply template
  RFC 2047-encodes the headers, making the output a valid RFC 2822
  message.  The JSON/sexp format is unchanged.

`notmuch compact` command

  The new `compact` command exposes Xapian's compaction
  functionality through a more convenient interface than
  `xapian-compact`. `notmuch compact` will compact the database to a
  temporary location, optionally backup the original database, and
  move the compacted database into place.

Emacs Interface
---------------

`notmuch-tree` (formerly `notmuch-pick`) has been added to mainline

  `notmuch-tree` is a threaded message view for the emacs
  interface. Each message is one line in the results and the thread
  structure is shown using UTF-8 box drawing characters (similar to
  Mutt's threaded view). It comes between search and show in terms of
  amount of output and can be useful for viewing both single threads
  and multiple threads.

  Using `notmuch-tree`

  The main key entries to notmuch tree are

  'z' enter a query to view using notmuch tree (works in hello,
      search, show and tree mode itself)

  'Z' view the current query in tree notmuch tree (works from search
      and show)

  Once in tree mode, keybindings are mostly in line with the rest of
  notmuch and are all viewable with '?' as usual.

  Customising `notmuch-tree`

  `notmuch-tree` has several customisation variables. The most
  significant is the first notmuch-tree-show-out which determines the
  behaviour when selecting a message (with RET) in tree view. By
  default tree view uses a split window showing the single message in
  the bottom pane. However, if this option is set then it views the
  whole thread in the complete window jumping to the selected message
  in the thread. In either case command-prefix selects the other option.

Tagging threads in search is now race-free

  Previously, adding or removing a tag from a thread in a search
  buffer would affect messages that had arrived after the search was
  performed, resulting in, for example, archiving messages that were
  never seen.  Tagging now affects only the messages that were in the
  thread when the search was performed.

`notmuch-hello` refreshes when switching to the buffer

  The hello buffer now refreshes whenever you switch to the buffer,
  regardless of how you get there.  You can disable automatic
  refreshing by customizing `notmuch-hello-auto-refresh`.

Specific mini-buffer prompts for tagging operations

  When entering tags to add or remove, the mini-buffer prompt now
  indicates what operation will be performed (e.g., "Tag thread", "Tag
  message", etc).

Built-in help improvements

  Documentation for many commands has been improved, as displayed by
  `notmuch-help` (usually bound to "?").  The bindings listed by
  `notmuch-help` also now include descriptions of prefixed commands.

Quote replies as they are displayed in show view

  We now render the parts for reply quoting the same way they are
  rendered for show. At this time, the notable change is that replies
  to text/calendar are now pretty instead of raw vcalendar.

Fixed inconsistent use of configured search order

  All ways of interactively invoking search now honor the value of
  `notmuch-search-oldest-first`.

Common keymap for notmuch-wide bindings

  Several key bindings have been moved from mode-specific keymaps to
  the single `notmuch-common-keymap`, which is inherited by each
  notmuch mode.  If you've customized your key bindings, you may want
  to move some of them to the common keymap.

The `notmuch-tag` function now requires a list of tag changes

  For users who have scripted the Emacs interface: the `notmuch-tag`
  API has changed.  Previously, it accepted either a list of tag
  changes or a space-separated string of tag changes.  The latter is
  no longer supported and the function now returns nothing.

Fixed `notmuch-reply` putting reply in primary selection

  On emacs 24 notmuch-reply used to put the cited text into the
  primary selection (which could lead to inadvertently pasting this
  cited text elsewhere). Now the primary-selection is not changed.

Fixed `notmuch-show` invisible part handling

  In some obscure cases part buttons and invisibility had strange
  interactions: in particular, the default action for some parts gave
  the wrong action. This has been fixed.

Fixed `notmuch-show` attachment viewers and stderr

  In emacs 24.3+ viewing an attachment could cause spurious text to
  appear in the show buffer (any stderr or stdout the viewer
  produced). By default this output is now discarded. For debugging,
  setting `notmuch-show-attachment-debug` causes notmuch to keep the
  viewer's stderr and stdout in a separate buffer.

Fixed `notmuch-mua-reply` point placement when signature involved

  By restricting cursor movement to body section for cursor placement
  after signature is inserted, the cursor cannot "leak" to header
  section anymore. Now inserted citation content will definitely go to
  the body part of the message.

Vim Interface
-------------

  It is now possible to compose new messages in the Vim interface, as
  opposed reply to existing messages.  There is also support for
  going straight to a search (bypassing the folders view).