[PATCH v2 00/11] Add filesize index, search, sort & emacs UI
Ioan-Adrian Ratiu
adi at adirat.com
Tue May 23 12:20:02 PDT 2017
On Tue, 23 May 2017, Jani Nikula <jani at nikula.org> wrote:
> On Fri, 19 May 2017, Ioan-Adrian Ratiu <adi at adirat.com> wrote:
>> I'd like to add a feature to quickly work with mail file sizes
>> because using custom scripts / external programs which parse
>> maildir contents is slow, and non-intuitive, especially since
>> notmuch does incremental parsing and has such a nice emacs UI.
>
> Before we dive into the details, I guess at least I'd like to see better
> rationale for the feature. I don't see myself searching or sorting based
> on message size. What's the use case? (I wouldn't mind adding the
> message size to the formatted output, but that doesn't require indexing
> the size or adding the search support for it.)
The use case is very simple: I routinely get big mail and want to know
about it to take various actions (extract attach, forward, archive etc).
Of course I can always write a script to search the maildir but that
takes too long, I'd very much rather have incremental indexing,
instant search and a very nice GUI front-end (emacs saved searches in
my case).
With this series I now have saved searches based on filesize which tell
me exactly instantly how many messages I have in a certain size range.
>
> One fundamental issue David noted on IRC, it'll be hard to decide what
> to index for "message" size when there are duplicates that typically
> have different sizes. For other things, we've indexed whatever comes
> first, but I suppose we'd like to fix that.
Yes, agreed, and I'll go even further: notmuch search shows thread
results - what I did in this patch series is sum up the total messages
file sizes in a thread for the search results.
We could do something similar, i.e. add all duplicate file sizes to the
"message" size and those in turn get added to a thread size. I'm not
saying we should necessarily do this, I'm just pointing it out as an
alternative which would work very well for me.
Ionel
>
> BR,
> Jani.
>
>>
>>
>> Ioan-Adrian Ratiu (11):
>> lib: message: index message file sizes
>> lib: database: store message filesize & add range processor
>> notmuch-search: add filesize based sort order
>> emacs: make notmuch-search-oldest-first generic
>> emacs: notmuch-search: add filesize sorting
>> sprinter: add unsigned_long printer function
>> lib: thread: add thread total size function
>> notmuch-search: output total_filesize thread result
>> notmuch-show: export message filesize
>> emacs: notmuch-search: add display thread sizes capability
>> emacs: notmuch-show: add filesize to headerline
>>
>> devel/schemata | 1 +
>> doc/notmuch-emacs.rst | 4 ++--
>> emacs/notmuch-hello.el | 24 +++++++++++++-----------
>> emacs/notmuch-jump.el | 11 +++++------
>> emacs/notmuch-lib.el | 9 ++++++---
>> emacs/notmuch-show.el | 5 ++++-
>> emacs/notmuch-tree.el | 2 +-
>> emacs/notmuch.el | 48 +++++++++++++++++++++++++++++++++---------------
>> lib/database-private.h | 1 +
>> lib/database.cc | 6 ++++++
>> lib/index.cc | 10 ++++++++++
>> lib/message-file.c | 18 +++++++++++++++++-
>> lib/message.cc | 29 +++++++++++++++++++++++++++++
>> lib/notmuch-private.h | 16 ++++++++++++++++
>> lib/notmuch.h | 21 +++++++++++++++++++++
>> lib/query.cc | 6 ++++++
>> lib/thread.cc | 12 ++++++++++++
>> notmuch-search.c | 8 +++++++-
>> notmuch-show.c | 5 +++++
>> sprinter-json.c | 9 +++++++++
>> sprinter-sexp.c | 9 +++++++++
>> sprinter-text.c | 9 +++++++++
>> sprinter.h | 1 +
>> 23 files changed, 223 insertions(+), 41 deletions(-)
>>
>> --
>> 2.13.0
>>
>> _______________________________________________
>> notmuch mailing list
>> notmuch at notmuchmail.org
>> https://notmuchmail.org/mailman/listinfo/notmuch
More information about the notmuch
mailing list