1 Return-Path: <jani@nikula.org>
\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 arlo.cworth.org (Postfix) with ESMTP id B2AF76DE014D
\r
6 for <notmuch@notmuchmail.org>; Wed, 13 Apr 2016 12:51:28 -0700 (PDT)
\r
7 X-Virus-Scanned: Debian amavisd-new at cworth.org
\r
11 X-Spam-Status: No, score=-0.555 tagged_above=-999 required=5 tests=[AWL=0.165,
\r
12 DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_LOW=-0.7,
\r
13 RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01] autolearn=disabled
\r
14 Received: from arlo.cworth.org ([127.0.0.1])
\r
15 by localhost (arlo.cworth.org [127.0.0.1]) (amavisd-new, port 10024)
\r
16 with ESMTP id 7vXhiEa4Y3LR for <notmuch@notmuchmail.org>;
\r
17 Wed, 13 Apr 2016 12:51:20 -0700 (PDT)
\r
18 Received: from mail-wm0-f65.google.com (mail-wm0-f65.google.com
\r
19 [74.125.82.65]) by arlo.cworth.org (Postfix) with ESMTPS id 45BDA6DE0127 for
\r
20 <notmuch@notmuchmail.org>; Wed, 13 Apr 2016 12:51:20 -0700 (PDT)
\r
21 Received: by mail-wm0-f65.google.com with SMTP id n3so17013575wmn.1
\r
22 for <notmuch@notmuchmail.org>; Wed, 13 Apr 2016 12:51:20 -0700 (PDT)
\r
23 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
\r
24 d=nikula-org.20150623.gappssmtp.com; s=20150623;
\r
25 h=from:to:cc:subject:in-reply-to:references:user-agent:date
\r
26 :message-id:mime-version;
\r
27 bh=c2tCIWelNfH9xSJvFv9XV7IBSNeLEgmKYGVOY5GALW0=;
\r
28 b=VgbTxdYUrNeUQ2iN0HhrYMH+bAmDY4GXjruTYqeNLpO87XCMoaHPr/EbYAvOpyDkb0
\r
29 dg8kjYodq7UHl9erKZUSdEA2C1LL5ZPHBtFjtsPPU3PiVx/09FkPg+0fPtO8pFvPf3e/
\r
30 jl4BNeDo4RT9jwq+gfWecoIy7f+Ys1FOY77UIoyYKIn/zxwsPcRIBdFYAoPI/4042M1b
\r
31 6jSWGTlJHyENNQr7Immi+EB5v/kppYRldsG/WpwFs1jnzk10qjDuRr0UtyBHvzwA9e3T
\r
32 wb8bn+506QHPz0/PO2gwPTl/IR58JhNY83/NEhIUcHJk71fx0JdoVegOwmQeBQ+NvDPP
\r
34 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
\r
35 d=1e100.net; s=20130820;
\r
36 h=x-gm-message-state:from:to:cc:subject:in-reply-to:references
\r
37 :user-agent:date:message-id:mime-version;
\r
38 bh=c2tCIWelNfH9xSJvFv9XV7IBSNeLEgmKYGVOY5GALW0=;
\r
39 b=BRVdbbb7UkIYTiib4t/4yoko+Di3S8dU7vmQ6SFJGhdrv4x6V04y4D1MLgZcJt9yHa
\r
40 /q5e+yYgPSYMjlBOu9Wl3C+OFuBLmrId1kK6L5N/ENPVXGDVs1uRah4oBU6T/hD36OSc
\r
41 iG7S+CGE/seVYOV7eEkRov8Aw9q54TM3q0VfYv0hrng7OwjtnnEjoEqOUzpBmyFCJGaO
\r
42 ds8s2kkoTfqK6T4sfUCm4vE7MvWjrVdc1fkQkRgz7XSmdhLvoScTcj2VAe3dRawQ+bgV
\r
43 KrZ+5RhXAa8jzg/JfgPMio98PAg6IFLF76HgaqS4fOAUdM8H+jGnQJ5P6NnT9G35TuWe
\r
46 AOPr4FVka003pzpKuF02I/bVjcc7oek0L4y6MEBZk0XGefAPpWMeY3tTjkd6QM6kD1mD1g==
\r
47 X-Received: by 10.194.205.167 with SMTP id lh7mr11723858wjc.30.1460577078723;
\r
48 Wed, 13 Apr 2016 12:51:18 -0700 (PDT)
\r
49 Received: from localhost (mobile-access-bcee7f-102.dhcp.inet.fi.
\r
51 by smtp.gmail.com with ESMTPSA id g78sm29746887wme.21.2016.04.13.12.51.17
\r
52 (version=TLSv1/SSLv3 cipher=OTHER);
\r
53 Wed, 13 Apr 2016 12:51:17 -0700 (PDT)
\r
54 From: Jani Nikula <jani@nikula.org>
\r
55 To: Austin Clements <amdragon@mit.edu>, Thomas Schwinge <thomas@schwinge.name>
\r
56 Cc: notmuch@notmuchmail.org
\r
57 Subject: Re: [PATCH] Repeatability when copying a whole directory into a
\r
60 <CAH-f9WuE3quh1jneP1Zj4+xB7r+AXwKbX0QfYvEwOQEKFG1F8Q@mail.gmail.com>
\r
61 References: <1317338806-7414-1-git-send-email-thomas@schwinge.name>
\r
62 <CAH-f9WuE3quh1jneP1Zj4+xB7r+AXwKbX0QfYvEwOQEKFG1F8Q@mail.gmail.com>
\r
63 User-Agent: Notmuch/0.21+109~g54aeab1 (http://notmuchmail.org) Emacs/24.4.1
\r
64 (x86_64-pc-linux-gnu)
\r
65 Date: Wed, 13 Apr 2016 22:50:03 +0300
\r
66 Message-ID: <87a8kxwaok.fsf@nikula.org>
\r
68 Content-Type: text/plain
\r
69 X-BeenThere: notmuch@notmuchmail.org
\r
70 X-Mailman-Version: 2.1.20
\r
72 List-Id: "Use and development of the notmuch mail system."
\r
73 <notmuch.notmuchmail.org>
\r
74 List-Unsubscribe: <https://notmuchmail.org/mailman/options/notmuch>,
\r
75 <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>
\r
76 List-Archive: <http://notmuchmail.org/pipermail/notmuch/>
\r
77 List-Post: <mailto:notmuch@notmuchmail.org>
\r
78 List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>
\r
79 List-Subscribe: <https://notmuchmail.org/mailman/listinfo/notmuch>,
\r
80 <mailto:notmuch-request@notmuchmail.org?subject=subscribe>
\r
81 X-List-Received-Date: Wed, 13 Apr 2016 19:51:28 -0000
\r
83 On Sat, 05 Nov 2011, Austin Clements <amdragon@mit.edu> wrote:
\r
84 > On Thu, Sep 29, 2011 at 7:26 PM, Thomas Schwinge <thomas@schwinge.name> wrote:
\r
85 >> This new test currently fails -- but it shouldn't.
\r
90 >> I found this while manually copying directories and running notmuch new.
\r
92 >> Am I just too sleepy at this time, or is it another DB vs. directory
\r
95 > Nice catch. I haven't verified this, but I believe the problem is
\r
96 > that notmuch never deletes directory documents. In fact, there isn't
\r
97 > even an API to do so. Even though it detects the deleted directory
\r
98 > and deletes all messages under it, the directory document sticks
\r
99 > around. When the directory comes back, notmuch finds the old
\r
100 > directory document with the old directory mtime and thinks it doesn't
\r
101 > have to rescan the directory because the cp -a reproduced the same
\r
102 > mtime the directory used to have.
\r
104 > So, I guess part of the answer is "don't cp -a" because that mucks
\r
105 > with mtimes and mtimes are all notmuch has to go by. But that's no
\r
106 > excuse for not removing the directory documents when the directory is
\r
109 > Fixing this is slightly tricky. I feel like there *shouldn't* be an
\r
110 > API to simply remove a directory document because that would let you
\r
111 > violate database consistency. Instead, I think the API should
\r
112 > recursively remove everything under the removed directory, exactly
\r
113 > like what notmuch-new.c:_remove_directory does right now (plus
\r
114 > removing the directory documents). But _remove_directory depends on
\r
115 > remove_filename, which currently has notmuch-new-specific logic in it.
\r
116 > I feel like there must be a nice solution to this, and I'm just not
\r
119 Stumbled upon this one while checking old bug reports. Maybe the fix in
\r
121 commit e26d99dc7b02f33299c281f97a13deaef802bc7a
\r
122 Author: Jani Nikula <jani@nikula.org>
\r
123 Date: Fri Sep 25 23:48:46 2015 +0300
\r
125 cli: delete directory documents on directory removal
\r
127 is inelegant, as it adds the API to remove directory document, but it's
\r
128 there now. I was unaware of this bug report and your analysis at the
\r