unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
From: Tomi Ollila <tomi.ollila@iki.fi>
To: Mark Walters <markwalters1009@gmail.com>,
	Jani Nikula <jani@nikula.org>,
	notmuch@notmuchmail.org
Subject: Re: [PATCH v2 00/13] literal folder: prefix, new path: prefix
Date: Sun, 23 Feb 2014 13:15:39 +0200	[thread overview]
Message-ID: <m2y512qdus.fsf@guru.guru-group.fi> (raw)
In-Reply-To: <87wqgmya2r.fsf@qmul.ac.uk>

On Sun, Feb 23 2014, Mark Walters <markwalters1009@gmail.com> 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 <jani@nikula.org> 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

  reply	other threads:[~2014-02-23 11:15 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-22 22:25 [PATCH v2 00/13] literal folder: prefix, new path: prefix Jani Nikula
2014-02-22 22:25 ` [PATCH v2 01/13] lib: refactor folder term update after filename removal Jani Nikula
2014-02-22 22:25 ` [PATCH v2 02/13] lib: add support for path: prefix searches Jani Nikula
2014-02-22 22:25 ` [PATCH v2 03/13] test: make insert test use the path: prefix Jani Nikula
2014-02-22 22:25 ` [PATCH v2 04/13] lib: make folder: prefix literal Jani Nikula
2014-02-22 22:25 ` [PATCH v2 05/13] test: fix test for literal folder: search Jani Nikula
2014-02-23 14:02   ` David Bremner
2014-02-22 22:25 ` [PATCH v2 06/13] test: make it possible to have several corpora Jani Nikula
2014-02-22 22:25 ` [PATCH v2 07/13] test: add new corpus with folders Jani Nikula
2014-02-22 22:25 ` [PATCH v2 08/13] test: add tests for the new boolean folder: and path: prefixes Jani Nikula
2014-02-22 22:25 ` [PATCH v2 09/13] devel: add script to generate test databases Jani Nikula
2014-02-22 22:25 ` [PATCH v2 10/13] test: add test database in format version 1 Jani Nikula
2014-02-22 22:25 ` [PATCH v2 11/13] test: add database upgrade test from format version 1 to 2 Jani Nikula
2014-02-22 22:25 ` [PATCH v2 12/13] man: update man pages for folder: and path: search terms Jani Nikula
2014-02-22 22:25 ` [PATCH v2 13/13] man: try to clarify the folder: and path: vs. --output=files confusion Jani Nikula
2014-02-22 23:57 ` [PATCH v2 00/13] literal folder: prefix, new path: prefix Mark Walters
2014-02-23 11:15   ` Tomi Ollila [this message]
2014-03-02 19:11 ` David Bremner
2014-03-04 19:37   ` Jani Nikula
2014-03-04 21:15     ` David Bremner
2014-03-05  8:39       ` Tomi Ollila
2014-03-05 11:48         ` David Bremner
2014-03-05 13:10           ` Tomi Ollila
2014-03-05 14:41             ` David Bremner
2014-03-05 15:40               ` Tomi Ollila

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://notmuchmail.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m2y512qdus.fsf@guru.guru-group.fi \
    --to=tomi.ollila@iki.fi \
    --cc=jani@nikula.org \
    --cc=markwalters1009@gmail.com \
    --cc=notmuch@notmuchmail.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://yhetil.org/notmuch.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).