Return-Path: X-Original-To: notmuch@notmuchmail.org Delivered-To: notmuch@notmuchmail.org Received: from localhost (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id B26684196F4 for ; Wed, 14 Apr 2010 17:59:02 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Spam-Flag: NO X-Spam-Score: -2.89 X-Spam-Level: X-Spam-Status: No, score=-2.89 tagged_above=-999 required=5 tests=[ALL_TRUSTED=-1, BAYES_00=-1.9, T_MIME_NO_TEXT=0.01] autolearn=ham Received: from olra.theworths.org ([127.0.0.1]) by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id rsp1aS65P1n0; Wed, 14 Apr 2010 17:59:01 -0700 (PDT) Received: from yoom.home.cworth.org (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id 81EB7431FC1; Wed, 14 Apr 2010 17:59:01 -0700 (PDT) Received: by yoom.home.cworth.org (Postfix, from userid 1000) id 2D232568DE1; Wed, 14 Apr 2010 17:59:01 -0700 (PDT) From: Carl Worth To: Xavier Maillard , Mark Anderson , Jesse Rosenthal , "notmuch\@notmuchmail.org" Subject: Re: [notmuch] Bulk message tagging In-Reply-To: References: <87sk7b30tg.fsf@jhu.edu> <3wdmxxg4axm.fsf@testarossa.amd.com> Date: Wed, 14 Apr 2010 17:59:01 -0700 Message-ID: <87fx2xfs4q.fsf@yoom.home.cworth.org> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha1; protocol="application/pgp-signature" X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2010 00:59:02 -0000 --=-=-= Content-Transfer-Encoding: quoted-printable On Sat, 10 Apr 2010 15:56:48 +0200, Xavier Maillard wrote: > On Tue, 6 Apr 2010 13:51:01 -0600, Mark Anderson = wrote: > >=20 > > I think that '*' is definitely an awesome command, but I wonder if we > > shouldn't have another command for the notmuch-search buffer which means > > 'tag all the threads that I can see in this buffer'. >=20 > This is exactly what my initial post asked for. '*' is not > totally satisfying for me due to the "limitations" you > exposed. Though It is a good and acceptable workaround for me. > As said, I just have to pay attention to redo my search query > before pressing the '*' key. The other bug with "*" is that it doesn't give any visual feedback, (the tag addition/deletion doesn't show up). We could fix all[*] the bugs of "*" by changing it to simply call the new region-based tagging function. The only concern I have with that is that it might be significantly slower, (it will execute N "notmuch tag" commands to tag the N threads in the current buffer, rather than just one "notmuch tag" command with the same search). But the command-line based "notmuch tag +/- " will always still be available for true "bulk" tagging, so maybe having "*" in emacs be implemented the slower way would be fine. I think the biggest concern I have with the performance is that if it *is* too slow, then the user might interrupt it with emacs, and with the current implementation that would lead to inconsistent display. That's not specific to "*" though---that's a bug with the current region-based implementation---it's just that "*" might make it much easier to hit. =2DCarl [*] Most all the bugs, at least. Even just a simple 'a' (or '+' or '-') on a single thread is already doing something subtly different than it should. It's tagging all messages in the thread, but that might be more messages than existed when the thread-summary was created. So you might see: [1/1] A. Bozo Boring topic... and decide to archive the thread, and never realize that what you archived away was several messages that would have been displayed as: [3/3] A Bozo, B Wizard, C Wizard Boring topic... [**] if you had only refreshed first. So we really should fix that bug and only manipulate messages that were actually present when the search was performed. Note that 'a' inside of the show view does not have this bug---it does only affect messages displayed. I'm not currently afflicted by this bug only because I'm running "notmuch new" manually, before mail-reading sessions as opposed to inside a cron-job or similar. [**] This is similar to the "thread pattern" idea described by Joey Hess here: http://kitenet.net/~joey/blog/entry/thread_patterns/ Our current one-line presentation of threads does a really lousy job of letting the user see thread patterns like this. We should perhaps come up with something better. One "something better" I have in mind would be the ability to write searches that could identify and tag threads according to these patterns. Our current search syntax isn't powerful enough to express these kinds of relations about messages within threads, but I would be very interested in coming up with something that does. The parts that Xapian can't easily support here probably wouldn't have to be fast either---they could operate on the results of threads, which are generally "small". At least, I hope nobody has threads with hundreds of thousands of messages in them. --=-=-= Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) iD8DBQFLxmTV6JDdNq8qSWgRAqknAJ9KMitIGmBD99B0VbdG7gor/UPcGACdHe01 pziYmg6vsrSz+nC7sNaiMMs= =ub9H -----END PGP SIGNATURE----- --=-=-=--