[PATCH] remove message archiving from show-advance-and-archive

Carl Worth cworth at cworth.org
Wed Jun 9 12:33:21 PDT 2010


On Wed, 09 Jun 2010 15:20:21 -0400, Jameson Rollins <jrollins at finestructure.net> wrote:
> On Wed, 09 Jun 2010 11:20:47 -0700, Dirk Hohndel <hohndel at infradead.org> wrote:
> > On Wed, 09 Jun 2010 10:50:15 -0700, Carl Worth <cworth at cworth.org> wrote:
> > I really like this. It's consistent and I'm sure I'll get used to it
> > quickly. The only question now is "all messages in a thread" or "all
> > open messages in a thread". I'd vote for all.

I have situations in which I want either one. The advantage of doing
"all open messages" is that it's easy to get the "all messages" behavior
by way of an existing command that's already useful in its own right,
("open all messages").

And I think "all open messages" is actually the right default as
well. If I do a focused search and end up reading one message that
matched the search, then archiving away that message and not others that
just happen to be in the same thread.

> I actually vote for the behavior Carl suggests.  The behavior of
> archiving the entire thread can be done by popping out to the search and
> applying notmuch-search-archive-thread to the thread with:
> 
> (define-key notmuch-search-mode-map "a" 'notmuch-search-archive-thread)

Or not. ;-)

I actually want to also fix the search mode commands like this to only
operate on messages that matched the (original search).

We had behavior that limited these commands to matching messages once,
but that was broken because it re-ran the search to find the list. So
that led to behavior like:

	-inbox # archive all messages in the thread

Then if the user realized that was a mistake, trying:

	+inbox # new search now matches nothing, so no effect

Our stop-gap solution here was to re-run a search with fewer
restrictions if the first search returned an empty list.

The correct solution is to remember the list of messages that matched
the first time and always operate on those. That will fix the above
problem and also avoid the race condition that can currently happen if
notmuch new is being run asynchronously from emacs. (The race is that
the user can thing he's archiving a thread with a single message but can
actually archive many messages that arrived since the original search
because the 'a' command is re-running the search.)

-Carl

-- 
carl.d.worth at intel.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://notmuchmail.org/pipermail/notmuch/attachments/20100609/dda84d44/attachment-0001.pgp>


More information about the notmuch mailing list