Re: [PATCH] emacs: wash: make word-wrap bound message width
[notmuch-archives.git] / b9 / 000ce4e8b1ce8829084201e64aaee50dd50e2d
1 Return-Path: <jrosenthal@jhu.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 CF251429E26\r
6         for <notmuch@notmuchmail.org>; Fri,  7 Oct 2011 04:36:32 -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: 1.001\r
10 X-Spam-Level: *\r
11 X-Spam-Status: No, score=1.001 tagged_above=-999 required=5\r
12         tests=[FSL_HELO_NON_FQDN_1=0.001, HELO_NO_DOMAIN=1] 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 EwJ5iUqaoCcT for <notmuch@notmuchmail.org>;\r
16         Fri,  7 Oct 2011 04:36:32 -0700 (PDT)\r
17 Received: from ladybug (li131-231.members.linode.com [69.164.216.231])\r
18         (using TLSv1 with cipher AES256-SHA (256/256 bits))\r
19         (No client certificate requested)\r
20         by olra.theworths.org (Postfix) with ESMTPS id 2CE27431FB6\r
21         for <notmuch@notmuchmail.org>; Fri,  7 Oct 2011 04:36:32 -0700 (PDT)\r
22 Received: from jkr by ladybug with local (Exim 4.76)\r
23         (envelope-from <jrosenthal@jhu.edu>)\r
24         id 1RC8j8-0008GB-JU; Fri, 07 Oct 2011 07:36:30 -0400\r
25 From: Jesse Rosenthal <jrosenthal@jhu.edu>\r
26 To: David Bremner <david@tethera.net>,\r
27         Jameson Graef Rollins <jrollins@finestructure.net>,\r
28         Notmuch Mail <notmuch@notmuchmail.org>\r
29 Subject: Re: tag sharing\r
30 In-Reply-To: <87ipo2td84.fsf@zancas.localnet>\r
31 References: <1306619520-25730-1-git-send-email-jrollins@finestructure.net>\r
32         <87hb8eebdi.fsf@servo.factory.finestructure.net>\r
33         <87pqmyn224.fsf@servo.factory.finestructure.net>\r
34         <87zklyjshd.fsf@yoom.home.cworth.org>\r
35         <87sjrng5k3.fsf@servo.factory.finestructure.net>\r
36         <87oc2bjgrs.fsf@yoom.home.cworth.org>\r
37         <8762oigc0y.fsf@servo.factory.finestructure.net>\r
38         <87boya98sf.fsf@gogo.home>\r
39         <87vcwg2p2m.fsf@servo.factory.finestructure.net>\r
40         <87wrcijn1w.fsf@zancas.localnet>\r
41         <m17h4i8dcj.fsf@watt.hwcampus.jhu.edu>\r
42         <87ipo2td84.fsf@zancas.localnet>\r
43 User-Agent: Notmuch/unknown (http://notmuchmail.org) Emacs/23.3.1\r
44         (x86_64-apple-darwin)\r
45 Date: Fri, 07 Oct 2011 07:36:30 -0400\r
46 Message-ID: <m1ty7lt4n5.fsf@jhu.edu>\r
47 MIME-Version: 1.0\r
48 Content-Type: text/plain; charset=us-ascii\r
49 X-BeenThere: notmuch@notmuchmail.org\r
50 X-Mailman-Version: 2.1.13\r
51 Precedence: list\r
52 List-Id: "Use and development of the notmuch mail system."\r
53         <notmuch.notmuchmail.org>\r
54 List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
55         <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
56 List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
57 List-Post: <mailto:notmuch@notmuchmail.org>\r
58 List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
59 List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
60         <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
61 X-List-Received-Date: Fri, 07 Oct 2011 11:36:32 -0000\r
62 \r
63 On Thu, 06 Oct 2011 11:18:51 -0300, David Bremner <david@tethera.net> wrote:\r
64 Non-text part: multipart/signed\r
65 > On Thu, 06 Oct 2011 09:21:48 -0400, Jesse Rosenthal <jrosenthal@jhu.edu> wrote:\r
66 > > morning's project. In retrospect, I think the main issue was that I was\r
67 > > trying to figure out how history would be kept. By using git, though,\r
68 > > your idea would be that we get history for free, right?\r
69\r
70 > Yeah. Of course, one would have to decide if the history of the current\r
71 > dump file format is intelligible, or if some alternative format should\r
72 > be used.\r
73 \r
74 I've managed to reconstruct a bit of my thinking. I think it could work\r
75 with the current format if we went as follows. I also think we could use\r
76 git, but I'm not sure that wouldn't be overkill. Some of the steps are\r
77 in extreme slow motion, just to make sure we're on the same page. (I've\r
78 also replaced the real msg-ids to cut down on noise).\r
79 \r
80   1. David dumps the targeted messages (tags in namespace "my"), so we\r
81      get a file like this:\r
82       \r
83       msg-id-1@example.1 (my.foo inbox)\r
84       msg-id-2@example.2 (answered my.to-do inbox signed)\r
85 \r
86   2. David strips out everything but tags in the namespace and removes\r
87      the namespace:\r
88 \r
89       msg-id-1@example.1 (foo)\r
90       msg-id-2@example.2 (to-do)\r
91 \r
92   3. David makes it available, Jesse pulls.\r
93 \r
94   4. Jesse dumps the namespace he has associated with David ("bremner"):\r
95 \r
96       msg-id-3@example.3 (bremner.bar)\r
97       msg-id-4@example.4 (bremner.bar unread)\r
98       msg-id-1@example.1 (bremner.foo inbox)\r
99       msg-id-5@example.5 (bremner.wishlist inbox)\r
100 \r
101   5. Jesse strips the tags:\r
102 \r
103       msg-id-3@example.3 (bar)\r
104       msg-id-4@example.4 (bar)\r
105       msg-id-1@example.1 (foo)\r
106       msg-id-5@example.5 (wishlist)\r
107 \r
108   6. Jesse replaces this list with David's:\r
109 \r
110       msg-id-1@example.1 (foo)\r
111       msg-id-2@example.2 (to-do)\r
112 \r
113   7. Jesse removes all tags with the "bremner" namespace from his\r
114      database.\r
115 \r
116   8. Jesse adds the tags from the list in step (6), with the appropriate\r
117      namespace, to his list of tags. The messages of interest now look like:\r
118 \r
119       msg-id-3@example.3 ()\r
120       msg-id-4@example.4 (unread)\r
121       msg-id-1@example.1 (bremner.foo inbox)\r
122       msg-id-5@example.5 (inbox)\r
123       msg-id-2@example.2 (bremner.to-do someothertag)\r
124 \r
125   9. Jesse runs `notmuch restore`\r
126 \r
127 The reason I went through this slowly is to highlight the fact that the\r
128 only thing that needs to be recorded in diffs somehow (in git, let's\r
129 say) are the files in steps (5) and (6). So if we integrated this with\r
130 git, there would be something along the lines of a commit (on Jesse's\r
131 computer) in step (5) and then another commit (again on Jesse's\r
132 computer) in step (6). \r
133 \r
134 Note that we don't actually need (5) to do tag-sharing. The only reason\r
135 it's there is for keeping history.\r
136 \r
137 I'm pretty sure that we don't need a commit on David's computer in step\r
138 (1), because what the history would record is when the tag-sharing\r
139 utility changed your tags, not when you did.\r
140 \r
141 Note also that all we would really be asking git to do here is keep an\r
142 ordered collection of diffs of a single file. Honest question: since\r
143 this is the barest possible form of version control, is git necessary?\r
144 Some of the features, like commit messages, don't seem to fit well with\r
145 this model; and others, like branching, seem pretty useless. What's the\r
146 value added over just keeping a (compressed?) collection of diffs for\r
147 each namespace?\r
148 \r
149 Best,\r
150 Jesse\r