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