[PATCH v2] introduce new.rename_tags for renamed (moved) messages
david at tethera.net
Tue Apr 2 18:28:48 PDT 2019
Michael J Gruber <git at grubix.eu> writes:
> Changed since v1:
> - acted upon review comments (blank line, _thaw position)
> - added 3 tests (mv, cp, cp-rm)
> - treat copies as renames, too
Apologies for taking so long to get back to this. As a general comment,
does this same tagging "hook" make sense for notmuch-insert as well?
That's not meant to delay this series, just food for thought.
> The reasoning behind the latter is: If you use a mapping between folders
> and tags, then a copy to an additional location should alert the
> "mapper" to update that mapping; that's what the rename tag is for.
> Maybe it should be named "renew" after all? But it's just the
> folder/label name that is/needs to be renewed, nothing else about the
It _is_ confusing to use rename to refer to copies as well as actual
renames. I don't find "renew" better though. I wonder about something
like "new.new_path_tags". That's a bit weird with the repeated "new", I
grant you. Maybe "new.path_change_tags"
> + A list of tags that will be added to all messages which
> + **notmuch new** identifies as renamed (moved).
> + Default: not set.
Even if the name stays the same, you'll need to update the blurb to
> +notmuch_config_set_rename_tags (notmuch_config_t *config,
> + const char *rename_tags,
> + size_t length);
If this is only used in notmuch-config.c, I don't think it needs to
be exported (at least until they are needed). Of course it's also worth
asking if we want to call them notmuch-setup.c; I suspect not doing so
is OK, but I haven't checked in detail.
> diff --git a/test/T340-maildir-sync.sh b/test/T340-maildir-sync.sh
These tests don't really have to do with maildir syncing (in the sense
that notmuch uses the word), that's about syncing maildir flags to
notmuch tags. I think they'd be better in T050-new.sh.
> index 7fece5f2..44f32ad2 100755
> --- a/test/T340-maildir-sync.sh
> +++ b/test/T340-maildir-sync.sh
> @@ -196,6 +196,36 @@ notmuch search 'subject:"File in new"' | notmuch_search_sanitize > output
> test_expect_equal "$(< output)" \
> "thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; File in new/ (test unread)"
> +test_begin_subtest "Renamed files get default renamed tags"
> +OLDCONFIG=$(notmuch config get new.rename_tags)
> +notmuch config set new.rename_tags "renamed"
> +mv $MAIL_DIR/new/file-in-new $MAIL_DIR/new/file-in-new-renamed
> +notmuch new
> +notmuch config set new.rename_tags $OLDCONFIG
> +notmuch search 'subject:"File in new"' | notmuch_search_sanitize > output
> +test_expect_equal "$(< output)" \
> +"thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; File in new/ (renamed test unread)"
Most of the newer tests use the pattern
cat << EOF > EXPECTED
thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; File in new/ (renamed test unread)
test_expect_equal_file EXPECTED output
we also mainly use OUTPUT for the file, and $output as a variable
Unfortunately the searches would need to be updated as well to work in
More information about the notmuch