* [PATCH 0/2] Ignore ignored broken symlinks @ 2012-11-25 5:25 Austin Clements 2012-11-25 5:25 ` [PATCH 1/2] test: Add a test for skipping " Austin Clements ` (3 more replies) 0 siblings, 4 replies; 6+ messages in thread From: Austin Clements @ 2012-11-25 5:25 UTC (permalink / raw) To: notmuch calmar on IRC reported a bug today where notmuch will abort when it encounters a broken symlink, even if that symlink is in the user-specified ignore list. These two patches test for this bug and fix it. ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/2] test: Add a test for skipping ignored broken symlinks 2012-11-25 5:25 [PATCH 0/2] Ignore ignored broken symlinks Austin Clements @ 2012-11-25 5:25 ` Austin Clements 2012-11-25 5:25 ` [PATCH 2/2] new: Skip " Austin Clements ` (2 subsequent siblings) 3 siblings, 0 replies; 6+ messages in thread From: Austin Clements @ 2012-11-25 5:25 UTC (permalink / raw) To: notmuch Currently marked as broken because we abort on broken symlinks, even if they are in the ignore list. --- test/new | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/test/new b/test/new index 587aa11..59892a7 100755 --- a/test/new +++ b/test/new @@ -203,4 +203,11 @@ test_expect_equal "$output" \ No new mail." +test_begin_subtest "Don't stop for ignored broken symlinks" +test_subtest_known_broken +notmuch config set new.ignore .git ignored_file .ignored_hidden_file broken_link +ln -s i_do_not_exist "${MAIL_DIR}"/broken_link +output=$(NOTMUCH_NEW 2>&1) +test_expect_equal "$output" "No new mail." + test_done -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/2] new: Skip ignored broken symlinks 2012-11-25 5:25 [PATCH 0/2] Ignore ignored broken symlinks Austin Clements 2012-11-25 5:25 ` [PATCH 1/2] test: Add a test for skipping " Austin Clements @ 2012-11-25 5:25 ` Austin Clements 2012-11-25 10:19 ` [PATCH 0/2] Ignore " Tomi Ollila 2012-11-27 2:23 ` David Bremner 3 siblings, 0 replies; 6+ messages in thread From: Austin Clements @ 2012-11-25 5:25 UTC (permalink / raw) To: notmuch We now test for user ignore patterns before attempting to determine if a directory entry is itself a directory. As a result, we no longer abort for broken symlinks if the user has explicitly ignored them. This fixes the test added in the previous patch. It also slightly changes the debug output checked by another test of ignores. --- notmuch-new.c | 26 +++++++++++++++----------- test/new | 6 +++++- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/notmuch-new.c b/notmuch-new.c index 56c4a6f..718a538 100644 --- a/notmuch-new.c +++ b/notmuch-new.c @@ -350,6 +350,18 @@ add_files (notmuch_database_t *notmuch, entry = fs_entries[i]; + /* Ignore any files/directories the user has configured to + * ignore. We do this before dirent_type both for performance + * and because we don't care if dirent_type fails on entries + * that are explicitly ignored. + */ + if (_entry_in_ignore_list (entry->d_name, state)) { + if (state->debug) + printf ("(D) add_files_recursive, pass 1: explicitly ignoring %s/%s\n", + path, entry->d_name); + continue; + } + /* We only want to descend into directories (and symlinks to * directories). */ entry_type = dirent_type (path, entry); @@ -364,22 +376,14 @@ add_files (notmuch_database_t *notmuch, } /* Ignore special directories to avoid infinite recursion. - * Also ignore the .notmuch directory, any "tmp" directory - * that appears within a maildir and files/directories - * the user has configured to be ignored. + * Also ignore the .notmuch directory and any "tmp" directory + * that appears within a maildir. */ if (strcmp (entry->d_name, ".") == 0 || strcmp (entry->d_name, "..") == 0 || (is_maildir && strcmp (entry->d_name, "tmp") == 0) || - strcmp (entry->d_name, ".notmuch") == 0 || - _entry_in_ignore_list (entry->d_name, state)) - { - if (_entry_in_ignore_list (entry->d_name, state) && state->debug) - printf ("(D) add_files_recursive, pass 1: explicitly ignoring %s/%s\n", - path, - entry->d_name); + strcmp (entry->d_name, ".notmuch") == 0) continue; - } next = talloc_asprintf (notmuch, "%s/%s", path, entry->d_name); status = add_files (notmuch, next, state); diff --git a/test/new b/test/new index 59892a7..8a76e34 100755 --- a/test/new +++ b/test/new @@ -192,7 +192,12 @@ touch "${MAIL_DIR}"/{one,one/two,one/two/three}/ignored_file output=$(NOTMUCH_NEW --debug 2>&1 | sort) test_expect_equal "$output" \ "(D) add_files_recursive, pass 1: explicitly ignoring ${MAIL_DIR}/.git +(D) add_files_recursive, pass 1: explicitly ignoring ${MAIL_DIR}/.ignored_hidden_file +(D) add_files_recursive, pass 1: explicitly ignoring ${MAIL_DIR}/ignored_file +(D) add_files_recursive, pass 1: explicitly ignoring ${MAIL_DIR}/one/ignored_file +(D) add_files_recursive, pass 1: explicitly ignoring ${MAIL_DIR}/one/two/ignored_file (D) add_files_recursive, pass 1: explicitly ignoring ${MAIL_DIR}/one/two/three/.git +(D) add_files_recursive, pass 1: explicitly ignoring ${MAIL_DIR}/one/two/three/ignored_file (D) add_files_recursive, pass 2: explicitly ignoring ${MAIL_DIR}/.git (D) add_files_recursive, pass 2: explicitly ignoring ${MAIL_DIR}/.ignored_hidden_file (D) add_files_recursive, pass 2: explicitly ignoring ${MAIL_DIR}/ignored_file @@ -204,7 +209,6 @@ No new mail." test_begin_subtest "Don't stop for ignored broken symlinks" -test_subtest_known_broken notmuch config set new.ignore .git ignored_file .ignored_hidden_file broken_link ln -s i_do_not_exist "${MAIL_DIR}"/broken_link output=$(NOTMUCH_NEW 2>&1) -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 0/2] Ignore ignored broken symlinks 2012-11-25 5:25 [PATCH 0/2] Ignore ignored broken symlinks Austin Clements 2012-11-25 5:25 ` [PATCH 1/2] test: Add a test for skipping " Austin Clements 2012-11-25 5:25 ` [PATCH 2/2] new: Skip " Austin Clements @ 2012-11-25 10:19 ` Tomi Ollila 2012-11-25 11:46 ` Mark Walters 2012-11-27 2:23 ` David Bremner 3 siblings, 1 reply; 6+ messages in thread From: Tomi Ollila @ 2012-11-25 10:19 UTC (permalink / raw) To: Austin Clements, notmuch On Sun, Nov 25 2012, Austin Clements <amdragon@MIT.EDU> wrote: > calmar on IRC reported a bug today where notmuch will abort when it > encounters a broken symlink, even if that symlink is in the > user-specified ignore list. These two patches test for this bug and > fix it. +1 Tomi ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 0/2] Ignore ignored broken symlinks 2012-11-25 10:19 ` [PATCH 0/2] Ignore " Tomi Ollila @ 2012-11-25 11:46 ` Mark Walters 0 siblings, 0 replies; 6+ messages in thread From: Mark Walters @ 2012-11-25 11:46 UTC (permalink / raw) To: Tomi Ollila, Austin Clements, notmuch On Sun, 25 Nov 2012, Tomi Ollila <tomi.ollila@iki.fi> wrote: > On Sun, Nov 25 2012, Austin Clements <amdragon@MIT.EDU> wrote: > >> calmar on IRC reported a bug today where notmuch will abort when it >> encounters a broken symlink, even if that symlink is in the >> user-specified ignore list. These two patches test for this bug and >> fix it. > > +1 +1 from me too Mark ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 0/2] Ignore ignored broken symlinks 2012-11-25 5:25 [PATCH 0/2] Ignore ignored broken symlinks Austin Clements ` (2 preceding siblings ...) 2012-11-25 10:19 ` [PATCH 0/2] Ignore " Tomi Ollila @ 2012-11-27 2:23 ` David Bremner 3 siblings, 0 replies; 6+ messages in thread From: David Bremner @ 2012-11-27 2:23 UTC (permalink / raw) To: Austin Clements, notmuch; +Cc: calmar c. Austin Clements <amdragon@MIT.EDU> writes: > calmar on IRC reported a bug today where notmuch will abort when it > encounters a broken symlink, even if that symlink is in the > user-specified ignore list. These two patches test for this bug and > fix it. > I have pushed this to master. calmar, your symlink bug should be fixed in the latest git master. d ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2012-11-27 2:23 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-11-25 5:25 [PATCH 0/2] Ignore ignored broken symlinks Austin Clements 2012-11-25 5:25 ` [PATCH 1/2] test: Add a test for skipping " Austin Clements 2012-11-25 5:25 ` [PATCH 2/2] new: Skip " Austin Clements 2012-11-25 10:19 ` [PATCH 0/2] Ignore " Tomi Ollila 2012-11-25 11:46 ` Mark Walters 2012-11-27 2:23 ` David Bremner
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).