Re: [PATCH] Add configurable changed tag to messages that have been changed on disk
authorAustin Clements <amdragon@MIT.EDU>
Wed, 6 Aug 2014 17:06:48 +0000 (13:06 +2000)
committerW. Trevor King <wking@tremily.us>
Fri, 7 Nov 2014 18:04:08 +0000 (10:04 -0800)
b5/3944c5bbd4b41ed7a1070c129eb72def05fd9f [new file with mode: 0644]

diff --git a/b5/3944c5bbd4b41ed7a1070c129eb72def05fd9f b/b5/3944c5bbd4b41ed7a1070c129eb72def05fd9f
new file mode 100644 (file)
index 0000000..5c2efed
--- /dev/null
@@ -0,0 +1,145 @@
+Return-Path: <amdragon@mit.edu>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+       by olra.theworths.org (Postfix) with ESMTP id 8CE7F431FAF\r
+       for <notmuch@notmuchmail.org>; Wed,  6 Aug 2014 10:07:01 -0700 (PDT)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: -2.3\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=-2.3 tagged_above=-999 required=5\r
+       tests=[RCVD_IN_DNSWL_MED=-2.3] autolearn=disabled\r
+Received: from olra.theworths.org ([127.0.0.1])\r
+       by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
+       with ESMTP id erLWDMylNGod for <notmuch@notmuchmail.org>;\r
+       Wed,  6 Aug 2014 10:06:56 -0700 (PDT)\r
+Received: from dmz-mailsec-scanner-7.mit.edu (dmz-mailsec-scanner-7.mit.edu\r
+       [18.7.68.36])\r
+       (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))\r
+       (No client certificate requested)\r
+       by olra.theworths.org (Postfix) with ESMTPS id 5B566431FAE\r
+       for <notmuch@notmuchmail.org>; Wed,  6 Aug 2014 10:06:56 -0700 (PDT)\r
+X-AuditID: 12074424-f79146d00000067c-7c-53e260af966e\r
+Received: from mailhub-auth-2.mit.edu ( [18.7.62.36])\r
+       (using TLS with cipher AES256-SHA (256/256 bits))\r
+       (Client did not present a certificate)\r
+       by dmz-mailsec-scanner-7.mit.edu (Symantec Messaging Gateway) with SMTP\r
+       id EE.76.01660.FA062E35; Wed,  6 Aug 2014 13:06:55 -0400 (EDT)\r
+Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11])\r
+       by mailhub-auth-2.mit.edu (8.13.8/8.9.2) with ESMTP id s76H6rw8000480; \r
+       Wed, 6 Aug 2014 13:06:54 -0400\r
+Received: from awakening.csail.mit.edu (awakening.csail.mit.edu [18.26.4.91])\r
+       (authenticated bits=0)\r
+       (User authenticated as amdragon@ATHENA.MIT.EDU)\r
+       by outgoing.mit.edu (8.13.8/8.12.4) with ESMTP id s76H6ovc017161\r
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT);\r
+       Wed, 6 Aug 2014 13:06:52 -0400\r
+Received: from amthrax by awakening.csail.mit.edu with local (Exim 4.80)\r
+       (envelope-from <amdragon@mit.edu>)\r
+       id 1XF4fq-00051B-60; Wed, 06 Aug 2014 13:06:50 -0400\r
+Date: Wed, 6 Aug 2014 13:06:48 -0400\r
+From: Austin Clements <amdragon@MIT.EDU>\r
+To: Gaute Hope <eg@gaute.vetsj.com>\r
+Subject: Re: [PATCH] Add configurable changed tag to messages that have been\r
+       changed on disk\r
+Message-ID: <20140806170647.GA13893@mit.edu>\r
+References: <1396800683-9164-1-git-send-email-eg@gaute.vetsj.com>\r
+       <87fviiiuzn.fsf@maritornes.cs.unb.ca>\r
+       <CABKe4Mv6p77i5dBT9BV41hxmtrE4UPLR3NjZfpLuZDoE1KWYyA@mail.gmail.com>\r
+       <20140801185505.GS13893@mit.edu>\r
+       <CABKe4MskJk6JuJ29A8o1-U-5Sz-xUCTJXJqvq22PqodGQKRZdw@mail.gmail.com>\r
+MIME-Version: 1.0\r
+Content-Type: text/plain; charset=us-ascii\r
+Content-Disposition: inline\r
+In-Reply-To:\r
+ <CABKe4MskJk6JuJ29A8o1-U-5Sz-xUCTJXJqvq22PqodGQKRZdw@mail.gmail.com>\r
+User-Agent: Mutt/1.5.21 (2010-09-15)\r
+X-Brightmail-Tracker:\r
+ H4sIAAAAAAAAA+NgFprKKsWRmVeSWpSXmKPExsUixG6nors+4VGwQddxTYsbrd2MFk2fL7Fa\r
+       XL85k9liX7+/A4vHj3/NbB7PVt1i9pgyay67x5ZD75kDWKK4bFJSczLLUov07RK4Mo48nM5W\r
+       8Ea0YnnHHcYGxj7BLkYODgkBE4krn0K6GDmBTDGJC/fWs4HYQgKzmSROXFfrYuQCsjcwSky9\r
+       coQJwjnFJLH27yxGCGcJo0R/x0Z2kBYWARWJRS+2MoHYbAIaEtv2L2cEsUUElCUuvdnPDGIz\r
+       C5RJ9D6ZC7ZCWCBOYtrlHUwgV/AK6Eh0bHKAmDmLSWLO6iVgM3kFBCVOznzCAtGrJXHj30uw\r
+       emYBaYnl/zhAwpwCgRInZ0wFWyUKdMKUk9vYJjAKzULSPQtJ9yyE7gWMzKsYZVNyq3RzEzNz\r
+       ilOTdYuTE/PyUot0zfVyM0v0UlNKNzGCQ99FZQdj8yGlQ4wCHIxKPLwz4x8GC7EmlhVX5h5i\r
+       lORgUhLlDY1+FCzEl5SfUpmRWJwRX1Sak1p8iFGCg1lJhFfcBijHm5JYWZValA+TkuZgURLn\r
+       fWttFSwkkJ5YkpqdmlqQWgSTleHgUJLgrY8HahQsSk1PrUjLzClBSDNxcIIM5wEaHgVSw1tc\r
+       kJhbnJkOkT/FqCglzrscJCEAksgozYPrhaWmV4ziQK8I86aDVPEA0xpc9yugwUxAg8107oMM\r
+       LklESEk1MEY0HH2gvkja7fsGv7efuWe0zJwg+uaH2Ga1I6t2u77k3jK9q0TqlZPLrLeCk+p9\r
+       zJ8JuS3Quan/vu5oMN+alJVznv+YpreF++ezL72FTdbiGRNNq9XnBZoFX6/S+PThefPs4M/q\r
+       E6MeS17adtli2fyS/Z9Xv5x5Vfrk1Y0Bf7OnTFub+ObJiqteSizFGYmGWsxFxYkAKYrP6SgD        AAA=\r
+Cc: notmuch <notmuch@notmuchmail.org>\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.13\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+       <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Wed, 06 Aug 2014 17:07:01 -0000\r
+\r
+Quoth Gaute Hope on Aug 06 at 11:02 am:\r
+> On Fri, Aug 1, 2014 at 8:55 PM, Austin Clements <amdragon@mit.edu> wrote:\r
+> > I have a prototype implementation of message modification times on my\r
+> > lastmod-v1 branch at\r
+> >\r
+> >   https://github.com/aclements/notmuch/tree/lastmod-v1\r
+> >\r
+> > It builds on my database features series that's currently awaiting\r
+> > review [1].\r
+> >\r
+> > The series uses a monotonic revision number, rather than wall-clock\r
+> > time, for reasons related to Xapian's concurrent control and detailed\r
+> > in the main commit's commit message.  The implementation isn't quite\r
+> > useful from the CLI yet because I haven't added any way to query the\r
+> > database's current revision number.  (I'm still thinking about how I\r
+> > want to do this, since search/show don't have a good way to deliver\r
+> > "additional" information right now.  I might just add the last\r
+> > modification for each individual message/max of all messages in a\r
+> > thread, similar to what Thomas Jost's patch did long ago.)\r
+> >\r
+> > [1] id:1406859003-11561-1-git-send-email-amdragon@mit.edu\r
+> \r
+> \r
+> Hi,\r
+> \r
+> this should allow me to do what I wish to accomplish. The message\r
+> deletion is still a problem though, I can see two options at the moment:\r
+> \r
+> a)  output during notmuch new to a hook or a list somewhere deleted files.\r
+>    if list: notmuch will not handle this list, only append to it and\r
+> the user must\r
+>    purge it when it is safe to do so.\r
+> \r
+>    if hook: for my purposes I would just create a hook appending to the\r
+>    list. as a minimum I think thread_id, message_id and revision number\r
+>    should be included.\r
+> \r
+> \r
+> b)  maintain a full list of deleted / dead messages. a user initiated\r
+>    purge can clean this from the database. a tag could be used for this,\r
+>    so that clients can ignore unlinked/deleted/dead messages. this\r
+>    differs from a 'deleted' message (IMAP/Maildir context) that has not\r
+>    yet been expunged so there is confusion to be avoided.\r
+> \r
+>    a garbage collection function and interface must also be set up, but\r
+>    this one is probably simple.\r
+> \r
+> \r
+> in most cases I think a) would be sufficient, and probably much easier\r
+> to do. it might be slow in cases where large amounts of messages have been\r
+> deleted, but this is seldom the case for me at least.\r
+\r
+I have a separate branch (also sitting on top of the features branch)\r
+that implements "ghost" messages.  The main intent is to fix a bug we\r
+currently have in threading, but it puts us in a good position to\r
+maintain state for messages we don't have the content of, including\r
+last modification times for deleted messages and pre-seeded tags for\r
+undelivered messages (useful for pre-tagging sent messages as sent,\r
+nmbug, notmuch insert, etc.)\r