This is v4 of id:1394313585-28422-1-git-send-email-david at tethera.net. Changes since v3, mostly addressing Austin's review and comments on IRC:
* Removed the extra corpus for folder tests. Instead, arranged the existing corpus into more folders. (Patch 01.) * Changed the folder/path tests to reflect the above, and incorporated them into existing folder tests instead of adding a new one. (Patch 07.) * Added a new patch to do notmuch_search_files_sanitize. (Patch 02.) * Folded test updates to folder: update to make tests pass at every commit. (Patch 06.) * Fixed indent fails and added comment about XFOLDER: prefix, spotted/suggested by Austin. (Patch 06.) * Used Austin's man page suggestion verbatim, but this may have to be redone if David's documentation changes get merged first. (Patch 09.) * Fixed a stray make dependency. (Patch 13.) * Notably *no* functional code changes. Finally, take heed of David's warning id:874n37a017.fsf at zancas.localnet. BR, Jani. David Bremner (2): test: commit folders-v1.tar.xz checksum, ignore actual databases test: add machinery to download and verify databases Jani Nikula (11): test: rearrange the test corpus into subfolders test: add notmuch_search_files_sanitize and use it 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: add tests for the new boolean folder: and path: prefixes 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: add script to generate test databases Makefile | 3 +- devel/gen-testdb.sh | 131 ++++++++++++++ lib/database.cc | 51 +++++- lib/message.cc | 249 ++++++++++++++++++--------- lib/notmuch-private.h | 3 + man/man1/notmuch-search.1 | 10 +- man/man7/notmuch-search-terms.7 | 41 ++++- test/README | 8 + test/T070-insert.sh | 10 +- test/T090-search-output.sh | 176 +++++++++---------- test/T100-search-by-folder.sh | 117 ++++++++++++- test/T370-search-folder-coherence.sh | 2 +- test/T530-upgrade.sh | 115 +++++++++++++ test/corpus/{cur => }/01:2, | 0 test/corpus/{cur => }/02:2, | 0 test/corpus/{cur => bar}/17:2, | 0 test/corpus/{cur => bar}/18:2, | 0 test/corpus/{cur => bar/baz}/05:2, | 0 test/corpus/{cur => bar/baz}/23:2, | 0 test/corpus/{cur => bar/baz}/24:2, | 0 test/corpus/{ => bar/baz}/cur/25:2, | 0 test/corpus/{ => bar/baz}/cur/26:2, | 0 test/corpus/{cur => bar/baz/new}/27:2, | 0 test/corpus/{cur => bar/baz/new}/28:2, | 0 test/corpus/{ => bar}/cur/19:2, | 0 test/corpus/{ => bar}/cur/20:2, | 0 test/corpus/{cur => bar/new}/21:2, | 0 test/corpus/{cur => bar/new}/22:2, | 0 test/corpus/{cur => foo}/06:2, | 0 test/corpus/{cur => foo/baz}/11:2, | 0 test/corpus/{cur => foo/baz}/12:2, | 0 test/corpus/{ => foo/baz}/cur/13:2, | 0 test/corpus/{ => foo/baz}/cur/14:2, | 0 test/corpus/{cur => foo/baz/new}/15:2, | 0 test/corpus/{cur => foo/baz/new}/16:2, | 0 test/corpus/{ => foo}/cur/07:2, | 0 test/corpus/{ => foo}/cur/08:2, | 0 test/corpus/{cur => foo/new}/03:2, | 0 test/corpus/{cur => foo/new}/09:2, | 0 test/corpus/{cur => foo/new}/10:2, | 0 test/corpus/{cur => new}/04:2, | 0 test/test-databases/.gitignore | 1 + test/test-databases/Makefile | 7 + test/test-databases/Makefile.local | 14 ++ test/test-databases/folders-v1.tar.xz.sha256 | 1 + test/test-lib.sh | 5 + 46 files changed, 753 insertions(+), 191 deletions(-) create mode 100755 devel/gen-testdb.sh create mode 100755 test/T530-upgrade.sh rename test/corpus/{cur => }/01:2, (100%) rename test/corpus/{cur => }/02:2, (100%) rename test/corpus/{cur => bar}/17:2, (100%) rename test/corpus/{cur => bar}/18:2, (100%) rename test/corpus/{cur => bar/baz}/05:2, (100%) rename test/corpus/{cur => bar/baz}/23:2, (100%) rename test/corpus/{cur => bar/baz}/24:2, (100%) rename test/corpus/{ => bar/baz}/cur/25:2, (100%) rename test/corpus/{ => bar/baz}/cur/26:2, (100%) rename test/corpus/{cur => bar/baz/new}/27:2, (100%) rename test/corpus/{cur => bar/baz/new}/28:2, (100%) rename test/corpus/{ => bar}/cur/19:2, (100%) rename test/corpus/{ => bar}/cur/20:2, (100%) rename test/corpus/{cur => bar/new}/21:2, (100%) rename test/corpus/{cur => bar/new}/22:2, (100%) rename test/corpus/{cur => foo}/06:2, (100%) rename test/corpus/{cur => foo/baz}/11:2, (100%) rename test/corpus/{cur => foo/baz}/12:2, (100%) rename test/corpus/{ => foo/baz}/cur/13:2, (100%) rename test/corpus/{ => foo/baz}/cur/14:2, (100%) rename test/corpus/{cur => foo/baz/new}/15:2, (100%) rename test/corpus/{cur => foo/baz/new}/16:2, (100%) rename test/corpus/{ => foo}/cur/07:2, (100%) rename test/corpus/{ => foo}/cur/08:2, (100%) rename test/corpus/{cur => foo/new}/03:2, (100%) rename test/corpus/{cur => foo/new}/09:2, (100%) rename test/corpus/{cur => foo/new}/10:2, (100%) rename test/corpus/{cur => new}/04:2, (100%) create mode 100644 test/test-databases/.gitignore create mode 100644 test/test-databases/Makefile create mode 100644 test/test-databases/Makefile.local create mode 100644 test/test-databases/folders-v1.tar.xz.sha256 -- 1.9.0