1 Return-Path: <bgamari@gmail.com>
\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 E2483431FBC
\r
6 for <notmuch@notmuchmail.org>; Wed, 17 Feb 2010 21:10:51 -0800 (PST)
\r
7 X-Virus-Scanned: Debian amavisd-new at olra.theworths.org
\r
11 X-Spam-Status: No, score=-2.186 tagged_above=-999 required=5 tests=[AWL=0.413,
\r
12 BAYES_00=-2.599] autolearn=ham
\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 OdNjwkh48E1F for <notmuch@notmuchmail.org>;
\r
16 Wed, 17 Feb 2010 21:10:51 -0800 (PST)
\r
17 Received: from mail-qy0-f187.google.com (mail-qy0-f187.google.com
\r
19 by olra.theworths.org (Postfix) with ESMTP id 22EF3431FAE
\r
20 for <notmuch@notmuchmail.org>; Wed, 17 Feb 2010 21:10:51 -0800 (PST)
\r
21 Received: by qyk17 with SMTP id 17so1154653qyk.2
\r
22 for <notmuch@notmuchmail.org>; Wed, 17 Feb 2010 21:10:50 -0800 (PST)
\r
23 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma;
\r
24 h=domainkey-signature:received:received:content-type:cc:subject:from
\r
25 :to:in-reply-to:references:date:message-id:user-agent
\r
26 :content-transfer-encoding;
\r
27 bh=9ZuTeHcuuyauuqqqFU+4qmkwGjyT5Ck1raMDCslbfuI=;
\r
28 b=to2od4fPEflITsQpmw5yCmtOsgBxDbQ+U2OKmOe1Eh1lUIycFMH71vRajX4EVIiXDK
\r
29 yPyqAFEENkaRCTtOn6CyUHFlbLClQ2fV9H/bfLoGMfzPauvdhmumWtBrHWe/pCoMBdpr
\r
30 lc3cO20Irb6Feod7QLpIDRV7m4SU/8Emg175A=
\r
31 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma;
\r
32 h=content-type:cc:subject:from:to:in-reply-to:references:date
\r
33 :message-id:user-agent:content-transfer-encoding;
\r
34 b=dkhSeEMg4F1Z2qA5UvFgk2O3c+Hyzv1/vAM5TflHv3BNQbq1bs7bvit9dRfuTupync
\r
35 CRI7JZa62MjMWKJ1yAYkYqfrhTErOfHw7VYqsUo7K4UoL4OnD7oU09s0IPq5b005rFXd
\r
36 uMgW+fv0tlOtxBz4iru+E7ttheHKmb/Q1rnMQ=
\r
37 Received: by 10.224.26.135 with SMTP id e7mr2216396qac.91.1266469850357;
\r
38 Wed, 17 Feb 2010 21:10:50 -0800 (PST)
\r
39 Received: from localhost (pool-96-236-125-203.spfdma.east.verizon.net
\r
41 by mx.google.com with ESMTPS id 6sm26979963qwd.16.2010.02.17.21.10.48
\r
42 (version=TLSv1/SSLv3 cipher=RC4-MD5);
\r
43 Wed, 17 Feb 2010 21:10:49 -0800 (PST)
\r
44 Content-Type: text/plain; charset=UTF-8
\r
45 From: Ben Gamari <bgamari@gmail.com>
\r
46 To: martin f krafft <madduck@madduck.net>
\r
47 In-reply-to: <20100218045943.GA6152@lapse.rw.madduck.net>
\r
48 References: <3wd3a0z7jjv.fsf@mhdcelk-nx01.amd.com>
\r
49 <1266435265-sup-5024@ben-laptop>
\r
50 <20100217235211.GC2628@lapse.rw.madduck.net>
\r
51 <1266453115-sup-7880@ben-laptop>
\r
52 <20100218015847.GB3480@lapse.rw.madduck.net>
\r
53 <1266459453-sup-7234@ben-laptop>
\r
54 <20100218024802.GA795@lapse.rw.madduck.net>
\r
55 <1266463007-sup-8777@ben-laptop>
\r
56 <20100218034613.GD1991@lapse.rw.madduck.net>
\r
57 <1266467977-sup-3504@ben-laptop>
\r
58 <20100218045943.GA6152@lapse.rw.madduck.net>
\r
59 Date: Thu, 18 Feb 2010 00:10:47 -0500
\r
60 Message-Id: <1266469478-sup-2095@ben-laptop>
\r
62 Content-Transfer-Encoding: 8bit
\r
63 Cc: notmuch <notmuch@notmuchmail.org>
\r
64 Subject: Re: [notmuch] nested tag trees (was: Mail in git)
\r
65 X-BeenThere: notmuch@notmuchmail.org
\r
66 X-Mailman-Version: 2.1.13
\r
68 List-Id: "Use and development of the notmuch mail system."
\r
69 <notmuch.notmuchmail.org>
\r
70 List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,
\r
71 <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>
\r
72 List-Archive: <http://notmuchmail.org/pipermail/notmuch>
\r
73 List-Post: <mailto:notmuch@notmuchmail.org>
\r
74 List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>
\r
75 List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,
\r
76 <mailto:notmuch-request@notmuchmail.org?subject=subscribe>
\r
77 X-List-Received-Date: Thu, 18 Feb 2010 05:10:52 -0000
\r
79 Excerpts from martin f krafft's message of Wed Feb 17 23:59:43 -0500 2010:
\r
80 > also sprach Ben Gamari <bgamari@gmail.com> [2010.02.18.1744 +1300]:
\r
81 > > I believe you would. The problem isn't the messages (well, that's
\r
82 > > a problem too), it's the fact that the tree (e.g. tab) objects
\r
83 > > which reference the messages are immutable (I believe). This
\r
84 > > presents us with the difficult circumstance of being unable to
\r
85 > > modify a tag after it has been created. Therefore, as far as I can
\r
86 > > tell, we need to rewrite the tag's tree object whenever we add or
\r
87 > > remove a message. This was the reason I suggested nesting tag
\r
88 > > trees, although this only partially solves the issue.
\r
90 > You are absolutely right, and I think nesting tag trees is an
\r
91 > interesting idea to pursue. It *would* make it impossible to ever
\r
92 > check out the metatree into the filesystem, or rather result in
\r
93 > subdirectories that the user shouldn't need to worry about.
\r
95 Yeah, this is a bit of a bummer. This is really a stretch, but I wonder
\r
96 if the git folks would accept patches/minor database semantics changes
\r
97 in the name of making git more flexible as a general purpose object
\r
98 database. I really doubt it, but you never know.
\r
100 > Instead of nested subtrees, think of 16 subtrees forming a level-1
\r
101 > hash table, or 256 for level-2, which really *ought* to be enough.
\r
103 > Anyway, rewriting a tree object is pretty much exactly the same as
\r
104 > removing a line (e.g. a message ID) from a file (e.g. a tag), as
\r
105 > that file would have to be fully rewritten.
\r
107 This is very true, but exactly do you mean by this statement?
\r
109 > > Yeah, I'm not sure how well this would scale on truly massive mail
\r
112 > The more I think about this, the more I want to implement this
\r
113 > between evenless and Git, i.e. as a porcelain layer, since then
\r
114 > I could also use it for vcs-home[0]. In fact, maybe one day we can
\r
115 > store ~ and mail all in one Git repo, with different porcelains for
\r
116 > different use-cases, and notmuch indexing it all anyway. ;)
\r
118 It would be nice if git just didn't attach so many semantics to its
\r
119 object types and left more up to the porcelain. Git is a fantastic
\r
120 database, unfortunately it seems you need to work around a lot of VCS
\r
121 behavior in order to make use of it in a non-VCS application. Attaching
\r
122 less meaning to database objects would make things substantially easier.
\r
124 > Let's continue the technical discussion on the Git list, okay?
\r
127 Yep. As soon as Majordomo sends me my confirmation.
\r