[PATCH 06/11] lib: store thread recipients in thread structure
[notmuch-archives.git] / ab / 8b20a67906513bf3471d6e146e41eada76e2a9
1 Return-Path: <amthrax@drake.mit.edu>\r
2 X-Original-To: notmuch@notmuchmail.org\r
3 Delivered-To: notmuch@notmuchmail.org\r
4 Received: from localhost (localhost [127.0.0.1])\r
5         by olra.theworths.org (Postfix) with ESMTP id 5C0A8431FD0\r
6         for <notmuch@notmuchmail.org>; Sat, 11 Jun 2011 13:04:58 -0700 (PDT)\r
7 X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
8 X-Spam-Flag: NO\r
9 X-Spam-Score: -0.7\r
10 X-Spam-Level: \r
11 X-Spam-Status: No, score=-0.7 tagged_above=-999 required=5\r
12         tests=[RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled\r
13 Received: from olra.theworths.org ([127.0.0.1])\r
14         by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
15         with ESMTP id q2pRHr5s6pob for <notmuch@notmuchmail.org>;\r
16         Sat, 11 Jun 2011 13:04:57 -0700 (PDT)\r
17 Received: from dmz-mailsec-scanner-6.mit.edu (DMZ-MAILSEC-SCANNER-6.MIT.EDU\r
18         [18.7.68.35])\r
19         by olra.theworths.org (Postfix) with ESMTP id BF8F8431FB6\r
20         for <notmuch@notmuchmail.org>; Sat, 11 Jun 2011 13:04:57 -0700 (PDT)\r
21 X-AuditID: 12074423-b7ce8ae000000a29-68-4df3ca633489\r
22 Received: from mailhub-auth-4.mit.edu ( [18.7.62.39])\r
23         by dmz-mailsec-scanner-6.mit.edu (Symantec Messaging Gateway) with SMTP\r
24         id D6.55.02601.36AC3FD4; Sat, 11 Jun 2011 16:04:51 -0400 (EDT)\r
25 Received: from outgoing.mit.edu (OUTGOING-AUTH.MIT.EDU [18.7.22.103])\r
26         by mailhub-auth-4.mit.edu (8.13.8/8.9.2) with ESMTP id p5BK4udc029922\r
27         for <notmuch@notmuchmail.org>; Sat, 11 Jun 2011 16:04:56 -0400\r
28 Received: from drake.mit.edu\r
29         (209-6-116-242.c3-0.arl-ubr1.sbo-arl.ma.cable.rcn.com\r
30         [209.6.116.242]) (authenticated bits=0)\r
31         (User authenticated as amdragon@ATHENA.MIT.EDU)\r
32         by outgoing.mit.edu (8.13.6/8.12.4) with ESMTP id p5BK4tpO005528\r
33         (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NOT)\r
34         for <notmuch@notmuchmail.org>; Sat, 11 Jun 2011 16:04:56 -0400 (EDT)\r
35 Received: from amthrax by drake.mit.edu with local (Exim 4.76)\r
36         (envelope-from <amthrax@drake.mit.edu>) id 1QVUQR-0000Gr-1Z\r
37         for notmuch@notmuchmail.org; Sat, 11 Jun 2011 16:04:55 -0400\r
38 From: Austin Clements <amdragon@MIT.EDU>\r
39 To: notmuch@notmuchmail.org\r
40 Subject: [PATCH v6 00/17] Fix 'notmuch new' atomicity issues\r
41 Date: Sat, 11 Jun 2011 16:04:26 -0400\r
42 Message-Id: <1307822683-848-1-git-send-email-amdragon@mit.edu>\r
43 X-Mailer: git-send-email 1.7.5.1\r
44 In-Reply-To: <87ei34rnc5.fsf@yoom.home.cworth.org>\r
45 References: <87ei34rnc5.fsf@yoom.home.cworth.org>\r
46 X-Brightmail-Tracker:\r
47  H4sIAAAAAAAAA+NgFtrBIsWRmVeSWpSXmKPExsUixG6nrpt86rOvwdO51hbXb85kdmD0eLbq\r
48         FnMAYxSXTUpqTmZZapG+XQJXxrWbH5gKGoUqXmx+ztTAeIqvi5GTQ0LARKJ74SZGCFtM4sK9\r
49         9WxdjFwcQgL7GCWa3k5lgnDOMUrMuNLLClIlJPCXSWLLUhUIey+jxNcjpiA2m4CGxLb9y8Em\r
50         iQhIS+y8OxusXljARmLFg99gcRYBVYm/+1rYQGxeATuJex3LWCE2K0hcuTKPBcTmFDCSONG2\r
51         lAlivqFE78EnTBMY+RYwMqxilE3JrdLNTczMKU5N1i1OTszLSy3SNdPLzSzRS00p3cQIDg4X\r
52         5R2Mfw4qHWIU4GBU4uFVXPvZV4g1say4MvcQoyQHk5Ior84JoBBfUn5KZUZicUZ8UWlOavEh\r
53         RgkOZiUR3vXtn3yFeFMSK6tSi/JhUtIcLErivHMl1X2FBNITS1KzU1MLUotgsjIcHEoSvJtP\r
54         Ag0VLEpNT61Iy8wpQUgzcXCCDOcBGn4UpIa3uCAxtzgzHSJ/itGYY+G69YcYOR5v2HSIUYgl\r
55         Lz8vVUqc9z5IqQBIaUZpHtw0WIS/YhQHek6Y9wdIFQ8wOcDNewW0iglolUAp2KqSRISUVAPj\r
56         ydVbb5l8v9HVvFBjp3Lj7Ngr1QvFti0x+Zom0femyaHTRoTdQNmmNlz4r96ruRlvds0vd7Gr\r
57         Y6xaFJ/l8mnyYpngddfSpJ+cSs/WDJjUdDNtmavV3tjvTKx5z4IjBc5nMkd6Gpsdf6PQHPLG\r
58         Xfbv3OXcXT3lLmmMT6Q0NyydkJE17cJJuyVKLMUZiYZazEXFiQAWSbHtywIAAA==\r
59 X-BeenThere: notmuch@notmuchmail.org\r
60 X-Mailman-Version: 2.1.13\r
61 Precedence: list\r
62 List-Id: "Use and development of the notmuch mail system."\r
63         <notmuch.notmuchmail.org>\r
64 List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
65         <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
66 List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
67 List-Post: <mailto:notmuch@notmuchmail.org>\r
68 List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
69 List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
70         <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
71 X-List-Received-Date: Sat, 11 Jun 2011 20:04:58 -0000\r
72 \r
73 Here's the reworked patch series that uses atomic sections more\r
74 heavily rather than changing the removal API.  This is atomic-new-v6\r
75 on http://awakening.csail.mit.edu/git/notmuch.git .\r
76 \r
77 (I was planning to make this series on Monday while stuck on a plane,\r
78 but an opportunity presented itself when I needed something better to\r
79 do than fix the sink.  As a result, if you can look over this before\r
80 Monday, I can use that time to address any further comments.)\r
81 \r
82 The beginning of the sequence---"test: Fix message when skipping\r
83 test_expect_equal* tests" through "new: Defer updating directory\r
84 mtimes until the end."---has not changed besides than the minor things\r
85 you pointed out earlier.  Here's a quick summary of the differences in\r
86 the rest of the sequence:\r
87 \r
88 lib: Add notmuch_database_{begin,end}_atomic.\r
89   Rebased but otherwise identical.\r
90 \r
91 lib: Add support for nested atomic sections.\r
92   New.\r
93 \r
94 lib: Indicate if there are more filenames after removal.\r
95   Rebased but otherwise identical.\r
96 \r
97 lib: Remove message document directly after removing the last file\r
98 name.\r
99   New.  Supersedes the patches that rewrote\r
100   notmuch_database_remove_message and made sync delete messages.\r
101 \r
102 lib: Add an API to find a message by filename.\r
103   Culled from "lib: Add API's to find by filename and ..." in the old\r
104   series.  What I kept is identical.\r
105 \r
106 lib: Wrap notmuch_database_add_message in an atomic section.\r
107   New.\r
108 \r
109 new: Cleanup. Put removed/renamed message count in add_files_state_t.\r
110 new: Cleanup. De-duplicate file name removal code.\r
111   Both new, but closely related to previous remove_filename patch.\r
112 \r
113 new: Synchronize maildir flags eagerly.\r
114   New, but very closely related to previous patch of the same name.\r
115   This patch is simpler now because of the previous two cleanups.\r
116 \r
117 new: Wrap adding and removing messages in atomic sections.\r
118   Rebased and added an atomic section around removal.\r
119 \r
120 lib: Improve notmuch_database_{add,remove}_message documentation.\r
121   New.\r
122 \r
123 Ultimately, I still think the existing removal API is weird because it\r
124 forces you to do things like lookup a message by file name just in\r
125 case you need that message object after removal tells you that it\r
126 didn't actually remove the message.  But I don't know what to do about\r
127 it that isn't equally weird.\r
128 \r