On Sat, 3 Mar 2012 13:05:13 +0000, Mark Walters wrote: > This series implements the proposal in id:"87y5riuz7v.fsf@qmul.ac.uk" > to move to a consistent --with-excluded approach rather than the > previous --no-exclude approach. See the message there and its > descendants for discussion. > > The main user side change is that notmuch-search no longer defaults to > showing all the excluded threads with [0/n] but will do so if the user > says they want all the messages (i.e., by specifying --with-excluded). > > However, it makes everything consistent throughout the commandline and > lib interfaces. In all cases a "message" type search only returns the > non-excluded matches (unless --with-excluded is specified) and a > "thread" type search returns all messages (including excluded ones) in > threads that match in a non-excluded message. Hi, Mark. Thanks so much for working on this. This new solution seems like a good one. It keeps the default as expected (excluded are actually excluded from all output), and the with-excluded option behaves intuitively. Looks good to me. Unfortunately, as I discussed with you on irc today, there seems to be a problem with the patch series that is preventing it from working as expected. The outputs of the following commands should agree, which they do: servo:~/src/notmuch/git [master] 0$ ./notmuch count --with-excluded tag:inbox 51171 servo:~/src/notmuch/git [master] 0$ ./notmuch search --output=messages --with-excluded tag:inbox | wc -l 51171 servo:~/src/notmuch/git [master] 0$ However, they should also agree in this case, which they don't: servo:~/src/notmuch/git [master] 0$ ./notmuch count tag:inbox 115 servo:~/src/notmuch/git [master] 0$ ./notmuch search --output=messages tag:inbox | wc -l 51169 servo:~/src/notmuch/git [master] 0$ In this last case, notmuch search is outputting (some but not all(!)) excluded messages when it shouldn't be. However, if I use a more complicated search term, everything seems to be working fine: servo:~/src/notmuch/git [master] 0$ ./notmuch count tag:inbox and tag:unread 0 servo:~/src/notmuch/git [master] 0$ ./notmuch search --output=messages tag:inbox and tag:unread | wc -l 0 servo:~/src/notmuch/git [master] 0$ ./notmuch count --with-excluded tag:inbox and tag:unread 47245 servo:~/src/notmuch/git [master] 0$ ./notmuch search --output=messages --with-excluded tag:inbox and tag:unread | wc -l 47245 servo:~/src/notmuch/git [master] 0$ It also works if I give a single "from:" search term instead of a single "tag:" search term. So it appears to be something about how the excluded query is constructed. I can't figure out where the problem is, although I'm still looking. If anyone else can figure it out, please let us know. I would really like to get this series applied so that I can get back to following master! Thanks again for all the work. jamie.