From b755ecaf70d03a1b730d42ae9c3e121658247249 Mon Sep 17 00:00:00 2001 From: Tomi Ollila Date: Sun, 23 Feb 2014 13:15:39 +0200 Subject: [PATCH] Re: [PATCH v2 00/13] literal folder: prefix, new path: prefix --- 92/a3d0c4a5fe5f853f7df3578ed3d660b18f50b5 | 377 ++++++++++++++++++++++ 1 file changed, 377 insertions(+) create mode 100644 92/a3d0c4a5fe5f853f7df3578ed3d660b18f50b5 diff --git a/92/a3d0c4a5fe5f853f7df3578ed3d660b18f50b5 b/92/a3d0c4a5fe5f853f7df3578ed3d660b18f50b5 new file mode 100644 index 000000000..bb3f68354 --- /dev/null +++ b/92/a3d0c4a5fe5f853f7df3578ed3d660b18f50b5 @@ -0,0 +1,377 @@ +Return-Path: +X-Original-To: notmuch@notmuchmail.org +Delivered-To: notmuch@notmuchmail.org +Received: from localhost (localhost [127.0.0.1]) + by olra.theworths.org (Postfix) with ESMTP id 2B4D2431FD8 + for ; Sun, 23 Feb 2014 03:15:55 -0800 (PST) +X-Virus-Scanned: Debian amavisd-new at olra.theworths.org +X-Spam-Flag: NO +X-Spam-Score: 0 +X-Spam-Level: +X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[none] + autolearn=disabled +Received: from olra.theworths.org ([127.0.0.1]) + by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id Lb9Izs5H3gAw for ; + Sun, 23 Feb 2014 03:15:47 -0800 (PST) +Received: from guru.guru-group.fi (guru.guru-group.fi [46.183.73.34]) + by olra.theworths.org (Postfix) with ESMTP id E1105431FCF + for ; Sun, 23 Feb 2014 03:15:46 -0800 (PST) +Received: from guru.guru-group.fi (localhost [IPv6:::1]) + by guru.guru-group.fi (Postfix) with ESMTP id B1B70100086; + Sun, 23 Feb 2014 13:15:39 +0200 (EET) +From: Tomi Ollila +To: Mark Walters , Jani Nikula , + notmuch@notmuchmail.org +Subject: Re: [PATCH v2 00/13] literal folder: prefix, new path: prefix +In-Reply-To: <87wqgmya2r.fsf@qmul.ac.uk> +References: <87wqgmya2r.fsf@qmul.ac.uk> +User-Agent: Notmuch/0.17+94~g1b90823 (http://notmuchmail.org) Emacs/24.3.1 + (x86_64-unknown-linux-gnu) +X-Face: HhBM'cA~ +MIME-Version: 1.0 +Content-Type: text/plain +X-BeenThere: notmuch@notmuchmail.org +X-Mailman-Version: 2.1.13 +Precedence: list +List-Id: "Use and development of the notmuch mail system." + +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +X-List-Received-Date: Sun, 23 Feb 2014 11:15:55 -0000 + +On Sun, Feb 23 2014, Mark Walters wrote: + +> I have read most of this series, tested it and run the tests and LGTM +1. +> +> I read the C code fairly carefully, the tests rather less so but they +> looked sane, and I didn't really look at patch 9 for building old +> databases. + +Well, I can add (at this point) that patch 9 is tolerable... + +> +> Best wishes +> +> Mark + +Tomi + + +> +> +> +> +> On Sat, 22 Feb 2014, Jani Nikula wrote: +>> Hi all, this is v2 of id:cover.1389304779.git.jani@nikula.org. +>> +>> The new path: prefix is a literal boolean prefix matching the paths, +>> relative from the maildir root, of the message files. There's no +>> interpretation of the maildir special cur/new folders, but a recursive +>> match is provided with "/**" suffix. See the patch for details. +>> +>> The folder: prefix becomes a literal boolean prefix, similar to path:, +>> except it matches the maildir cur/new folders in addition to the +>> specified path. There's no recursive version. +>> +>> Patches 1-5 add the above. +>> +>> Patches 6-8 change the test infrastructure to make it easier to add +>> multiple corpuses, and adds a new test for path: and folder:. +>> +>> Patches 9-11 add support for testing the database upgrade. +>> +>> Patches 12-13 update man pages. +>> +>> +>> I've dropped most of the content in patches 7 and 10 due to their +>> size. The patches (and the whole series) are available in the +>> boolean-folder-and-path-v2 branch at +>> git://gitorious.org/jani/notmuch.git. Web interface at +>> https://gitorious.org/jani/notmuch/commits/0b3dd2d1cc6c413ea07ea326883ac448499c0e79. +>> +>> +>> WARNING! The change requires a database format version bump, and a +>> database upgrade, which is automatically done on 'notmuch new'. The +>> upgrade is irreversible if you want to try this on your database! A +>> complete database rebuild is required for reverting the database format +>> version. Make sure your backups are in order! +>> +>> +>> BR, +>> Jani. +>> +>> +>> Jani Nikula (13): +>> lib: refactor folder term update after filename removal +>> lib: add support for path: prefix searches +>> test: make insert test use the path: prefix +>> lib: make folder: prefix literal +>> test: fix test for literal folder: search +>> test: make it possible to have several corpora +>> test: add new corpus with folders +>> test: add tests for the new boolean folder: and path: prefixes +>> devel: add script to generate test databases +>> test: add test database in format version 1 +>> test: add database upgrade test from format version 1 to 2 +>> man: update man pages for folder: and path: search terms +>> man: try to clarify the folder: and path: vs. --output=files confusion +>> +>> devel/gen-testdb.sh | 124 ++++++++++++ +>> lib/database.cc | 45 ++++- +>> lib/message.cc | 249 ++++++++++++++++------- +>> lib/notmuch-private.h | 3 + +>> man/man1/notmuch-search.1 | 10 +- +>> man/man7/notmuch-search-terms.7 | 28 ++- +>> test/.gitignore | 2 +- +>> test/Makefile.local | 2 +- +>> test/T070-insert.sh | 10 +- +>> test/T100-search-by-folder.sh | 24 ++- +>> test/T101-search-by-folder-and-path.sh | 83 ++++++++ +>> test/T480-hex-escaping.sh | 4 +- +>> test/T530-upgrade.sh | 103 ++++++++++ +>> test/corpus/{ => default}/cur/01:2, | 0 +>> test/corpus/{ => default}/cur/02:2, | 0 +>> test/corpus/{ => default}/cur/03:2, | 0 +>> test/corpus/{ => default}/cur/04:2, | 0 +>> test/corpus/{ => default}/cur/05:2, | 0 +>> test/corpus/{ => default}/cur/06:2, | 0 +>> test/corpus/{ => default}/cur/07:2, | 0 +>> test/corpus/{ => default}/cur/08:2, | 0 +>> test/corpus/{ => default}/cur/09:2, | 0 +>> test/corpus/{ => default}/cur/10:2, | 0 +>> test/corpus/{ => default}/cur/11:2, | 0 +>> test/corpus/{ => default}/cur/12:2, | 0 +>> test/corpus/{ => default}/cur/13:2, | 0 +>> test/corpus/{ => default}/cur/14:2, | 0 +>> test/corpus/{ => default}/cur/15:2, | 0 +>> test/corpus/{ => default}/cur/16:2, | 0 +>> test/corpus/{ => default}/cur/17:2, | 0 +>> test/corpus/{ => default}/cur/18:2, | 0 +>> test/corpus/{ => default}/cur/19:2, | 0 +>> test/corpus/{ => default}/cur/20:2, | 0 +>> test/corpus/{ => default}/cur/21:2, | 0 +>> test/corpus/{ => default}/cur/22:2, | 0 +>> test/corpus/{ => default}/cur/23:2, | 0 +>> test/corpus/{ => default}/cur/24:2, | 0 +>> test/corpus/{ => default}/cur/25:2, | 0 +>> test/corpus/{ => default}/cur/26:2, | 0 +>> test/corpus/{ => default}/cur/27:2, | 0 +>> test/corpus/{ => default}/cur/28:2, | 0 +>> test/corpus/{ => default}/cur/29:2, | 0 +>> test/corpus/{ => default}/cur/30:2, | 0 +>> test/corpus/{ => default}/cur/31:2, | 0 +>> test/corpus/{ => default}/cur/32:2, | 0 +>> test/corpus/{ => default}/cur/33:2, | 0 +>> test/corpus/{ => default}/cur/34:2, | 0 +>> test/corpus/{ => default}/cur/35:2, | 0 +>> test/corpus/{ => default}/cur/36:2, | 0 +>> test/corpus/{ => default}/cur/37:2, | 0 +>> test/corpus/{ => default}/cur/38:2, | 0 +>> test/corpus/{ => default}/cur/39:2, | 0 +>> test/corpus/{ => default}/cur/40:2, | 0 +>> test/corpus/{ => default}/cur/41:2, | 0 +>> test/corpus/{ => default}/cur/42:2, | 0 +>> test/corpus/{ => default}/cur/43:2, | 0 +>> test/corpus/{ => default}/cur/44:2, | 0 +>> test/corpus/{ => default}/cur/45:2, | 0 +>> test/corpus/{ => default}/cur/46:2, | 0 +>> test/corpus/{ => default}/cur/47:2, | 0 +>> test/corpus/{ => default}/cur/48:2, | 0 +>> test/corpus/{ => default}/cur/49:2, | 0 +>> test/corpus/{ => default}/cur/50:2, | 0 +>> test/corpus/{ => default}/cur/51:2, | 0 +>> test/corpus/{ => default}/cur/52:2, | 0 +>> test/corpus/{ => default}/cur/53:2, | 0 +>> test/corpus/folders/01:2, | 34 ++++ +>> test/corpus/folders/02:2, | 32 +++ +>> test/corpus/folders/bar/17:2, | 23 +++ +>> test/corpus/folders/bar/18:2, | 12 ++ +>> test/corpus/folders/bar/baz/05:2, | 104 ++++++++++ +>> test/corpus/folders/bar/baz/23:2, | 145 +++++++++++++ +>> test/corpus/folders/bar/baz/24:2, | 204 +++++++++++++++++++ +>> test/corpus/folders/bar/baz/cur/25:2, | 32 +++ +>> test/corpus/folders/bar/baz/cur/26:2, | 121 +++++++++++ +>> test/corpus/folders/bar/baz/new/27:2, | 21 ++ +>> test/corpus/folders/bar/baz/new/28:2, | 38 ++++ +>> test/corpus/folders/bar/cur/19:2, | 360 +++++++++++++++++++++++++++++++++ +>> test/corpus/folders/bar/cur/20:2, | 101 +++++++++ +>> test/corpus/folders/bar/new/21:2, | 102 ++++++++++ +>> test/corpus/folders/bar/new/22:2, | 84 ++++++++ +>> test/corpus/folders/cur/29:2, | 21 ++ +>> test/corpus/folders/cur/30:2, | 75 +++++++ +>> test/corpus/folders/cur/31:2, | 31 +++ +>> test/corpus/folders/cur/32:2, | 165 +++++++++++++++ +>> test/corpus/folders/cur/33:2, | 13 ++ +>> test/corpus/folders/cur/34:2, | 46 +++++ +>> test/corpus/folders/cur/35:2, | 24 +++ +>> test/corpus/folders/cur/36:2, | 25 +++ +>> test/corpus/folders/cur/37:2, | 22 ++ +>> test/corpus/folders/cur/38:2, | 40 ++++ +>> test/corpus/folders/cur/39:2, | 32 +++ +>> test/corpus/folders/cur/40:2, | 31 +++ +>> test/corpus/folders/cur/41:2, | 37 ++++ +>> test/corpus/folders/cur/42:2, | 30 +++ +>> test/corpus/folders/cur/43:2, | 26 +++ +>> test/corpus/folders/cur/44:2, | 29 +++ +>> test/corpus/folders/cur/45:2, | 41 ++++ +>> test/corpus/folders/cur/46:2, | 57 ++++++ +>> test/corpus/folders/cur/47:2, | 84 ++++++++ +>> test/corpus/folders/cur/48:2, | 17 ++ +>> test/corpus/folders/cur/49:2, | 33 +++ +>> test/corpus/folders/cur/50:2, | 39 ++++ +>> test/corpus/folders/cur/52:2, | 39 ++++ +>> test/corpus/folders/cur/53:2, | 20 ++ +>> test/corpus/folders/foo/05:2, | 104 ++++++++++ +>> test/corpus/folders/foo/06:2, | 36 ++++ +>> test/corpus/folders/foo/baz/11:2, | 27 +++ +>> test/corpus/folders/foo/baz/12:2, | 27 +++ +>> test/corpus/folders/foo/baz/cur/13:2, | 178 ++++++++++++++++ +>> test/corpus/folders/foo/baz/cur/14:2, | 39 ++++ +>> test/corpus/folders/foo/baz/new/15:2, | 22 ++ +>> test/corpus/folders/foo/baz/new/16:2, | 27 +++ +>> test/corpus/folders/foo/cur/07:2, | 57 ++++++ +>> test/corpus/folders/foo/cur/08:2, | 87 ++++++++ +>> test/corpus/folders/foo/new/03:2, | 93 +++++++++ +>> test/corpus/folders/foo/new/09:2, | 33 +++ +>> test/corpus/folders/foo/new/10:2, | 54 +++++ +>> test/corpus/folders/new/03:2, | 93 +++++++++ +>> test/corpus/folders/new/04:2, | 84 ++++++++ +>> test/notmuch-test | 2 +- +>> test/test-databases/README | 5 + +>> test/test-databases/database-v1.tar.gz | Bin 0 -> 262063 bytes +>> test/test-lib.sh | 21 +- +>> 124 files changed, 3954 insertions(+), 112 deletions(-) +>> create mode 100755 devel/gen-testdb.sh +>> create mode 100755 test/T101-search-by-folder-and-path.sh +>> create mode 100755 test/T530-upgrade.sh +>> rename test/corpus/{ => default}/cur/01:2, (100%) +>> rename test/corpus/{ => default}/cur/02:2, (100%) +>> rename test/corpus/{ => default}/cur/03:2, (100%) +>> rename test/corpus/{ => default}/cur/04:2, (100%) +>> rename test/corpus/{ => default}/cur/05:2, (100%) +>> rename test/corpus/{ => default}/cur/06:2, (100%) +>> rename test/corpus/{ => default}/cur/07:2, (100%) +>> rename test/corpus/{ => default}/cur/08:2, (100%) +>> rename test/corpus/{ => default}/cur/09:2, (100%) +>> rename test/corpus/{ => default}/cur/10:2, (100%) +>> rename test/corpus/{ => default}/cur/11:2, (100%) +>> rename test/corpus/{ => default}/cur/12:2, (100%) +>> rename test/corpus/{ => default}/cur/13:2, (100%) +>> rename test/corpus/{ => default}/cur/14:2, (100%) +>> rename test/corpus/{ => default}/cur/15:2, (100%) +>> rename test/corpus/{ => default}/cur/16:2, (100%) +>> rename test/corpus/{ => default}/cur/17:2, (100%) +>> rename test/corpus/{ => default}/cur/18:2, (100%) +>> rename test/corpus/{ => default}/cur/19:2, (100%) +>> rename test/corpus/{ => default}/cur/20:2, (100%) +>> rename test/corpus/{ => default}/cur/21:2, (100%) +>> rename test/corpus/{ => default}/cur/22:2, (100%) +>> rename test/corpus/{ => default}/cur/23:2, (100%) +>> rename test/corpus/{ => default}/cur/24:2, (100%) +>> rename test/corpus/{ => default}/cur/25:2, (100%) +>> rename test/corpus/{ => default}/cur/26:2, (100%) +>> rename test/corpus/{ => default}/cur/27:2, (100%) +>> rename test/corpus/{ => default}/cur/28:2, (100%) +>> rename test/corpus/{ => default}/cur/29:2, (100%) +>> rename test/corpus/{ => default}/cur/30:2, (100%) +>> rename test/corpus/{ => default}/cur/31:2, (100%) +>> rename test/corpus/{ => default}/cur/32:2, (100%) +>> rename test/corpus/{ => default}/cur/33:2, (100%) +>> rename test/corpus/{ => default}/cur/34:2, (100%) +>> rename test/corpus/{ => default}/cur/35:2, (100%) +>> rename test/corpus/{ => default}/cur/36:2, (100%) +>> rename test/corpus/{ => default}/cur/37:2, (100%) +>> rename test/corpus/{ => default}/cur/38:2, (100%) +>> rename test/corpus/{ => default}/cur/39:2, (100%) +>> rename test/corpus/{ => default}/cur/40:2, (100%) +>> rename test/corpus/{ => default}/cur/41:2, (100%) +>> rename test/corpus/{ => default}/cur/42:2, (100%) +>> rename test/corpus/{ => default}/cur/43:2, (100%) +>> rename test/corpus/{ => default}/cur/44:2, (100%) +>> rename test/corpus/{ => default}/cur/45:2, (100%) +>> rename test/corpus/{ => default}/cur/46:2, (100%) +>> rename test/corpus/{ => default}/cur/47:2, (100%) +>> rename test/corpus/{ => default}/cur/48:2, (100%) +>> rename test/corpus/{ => default}/cur/49:2, (100%) +>> rename test/corpus/{ => default}/cur/50:2, (100%) +>> rename test/corpus/{ => default}/cur/51:2, (100%) +>> rename test/corpus/{ => default}/cur/52:2, (100%) +>> rename test/corpus/{ => default}/cur/53:2, (100%) +>> create mode 100644 test/corpus/folders/01:2, +>> create mode 100644 test/corpus/folders/02:2, +>> create mode 100644 test/corpus/folders/bar/17:2, +>> create mode 100644 test/corpus/folders/bar/18:2, +>> create mode 100644 test/corpus/folders/bar/baz/05:2, +>> create mode 100644 test/corpus/folders/bar/baz/23:2, +>> create mode 100644 test/corpus/folders/bar/baz/24:2, +>> create mode 100644 test/corpus/folders/bar/baz/cur/25:2, +>> create mode 100644 test/corpus/folders/bar/baz/cur/26:2, +>> create mode 100644 test/corpus/folders/bar/baz/new/27:2, +>> create mode 100644 test/corpus/folders/bar/baz/new/28:2, +>> create mode 100644 test/corpus/folders/bar/cur/19:2, +>> create mode 100644 test/corpus/folders/bar/cur/20:2, +>> create mode 100644 test/corpus/folders/bar/new/21:2, +>> create mode 100644 test/corpus/folders/bar/new/22:2, +>> create mode 100644 test/corpus/folders/cur/29:2, +>> create mode 100644 test/corpus/folders/cur/30:2, +>> create mode 100644 test/corpus/folders/cur/31:2, +>> create mode 100644 test/corpus/folders/cur/32:2, +>> create mode 100644 test/corpus/folders/cur/33:2, +>> create mode 100644 test/corpus/folders/cur/34:2, +>> create mode 100644 test/corpus/folders/cur/35:2, +>> create mode 100644 test/corpus/folders/cur/36:2, +>> create mode 100644 test/corpus/folders/cur/37:2, +>> create mode 100644 test/corpus/folders/cur/38:2, +>> create mode 100644 test/corpus/folders/cur/39:2, +>> create mode 100644 test/corpus/folders/cur/40:2, +>> create mode 100644 test/corpus/folders/cur/41:2, +>> create mode 100644 test/corpus/folders/cur/42:2, +>> create mode 100644 test/corpus/folders/cur/43:2, +>> create mode 100644 test/corpus/folders/cur/44:2, +>> create mode 100644 test/corpus/folders/cur/45:2, +>> create mode 100644 test/corpus/folders/cur/46:2, +>> create mode 100644 test/corpus/folders/cur/47:2, +>> create mode 100644 test/corpus/folders/cur/48:2, +>> create mode 100644 test/corpus/folders/cur/49:2, +>> create mode 100644 test/corpus/folders/cur/50:2, +>> create mode 100644 test/corpus/folders/cur/52:2, +>> create mode 100644 test/corpus/folders/cur/53:2, +>> create mode 100644 test/corpus/folders/foo/05:2, +>> create mode 100644 test/corpus/folders/foo/06:2, +>> create mode 100644 test/corpus/folders/foo/baz/11:2, +>> create mode 100644 test/corpus/folders/foo/baz/12:2, +>> create mode 100644 test/corpus/folders/foo/baz/cur/13:2, +>> create mode 100644 test/corpus/folders/foo/baz/cur/14:2, +>> create mode 100644 test/corpus/folders/foo/baz/new/15:2, +>> create mode 100644 test/corpus/folders/foo/baz/new/16:2, +>> create mode 100644 test/corpus/folders/foo/cur/07:2, +>> create mode 100644 test/corpus/folders/foo/cur/08:2, +>> create mode 100644 test/corpus/folders/foo/new/03:2, +>> create mode 100644 test/corpus/folders/foo/new/09:2, +>> create mode 100644 test/corpus/folders/foo/new/10:2, +>> create mode 100644 test/corpus/folders/new/03:2, +>> create mode 100644 test/corpus/folders/new/04:2, +>> create mode 100644 test/test-databases/README +>> create mode 100644 test/test-databases/database-v1.tar.gz +>> +>> -- +>> 1.8.5.3 +>> +>> _______________________________________________ +>> notmuch mailing list +>> notmuch@notmuchmail.org +>> http://notmuchmail.org/mailman/listinfo/notmuch +> _______________________________________________ +> notmuch mailing list +> notmuch@notmuchmail.org +> http://notmuchmail.org/mailman/listinfo/notmuch -- 2.26.2