Index: subversion/libsvn_wc/status.c =================================================================== --- subversion/libsvn_wc/status.c +++ subversion/libsvn_wc/status.c Sun Aug 25 01:01:16 2002 @@ -101,6 +101,7 @@ svn_wc_entry_t *entry, svn_node_kind_t path_kind, svn_boolean_t get_all, + svn_boolean_t is_ignored, apr_pool_t *pool) { svn_wc_status_t *stat; @@ -132,7 +133,12 @@ /* If this path has no entry, but IS present on disk, it's unversioned. */ if (path_kind != svn_node_none) - stat->text_status = svn_wc_status_unversioned; + { + if (is_ignored) + stat->text_status = svn_wc_status_none; + else + stat->text_status = svn_wc_status_unversioned; + } *status = stat; return SVN_NO_ERROR; @@ -285,12 +291,13 @@ svn_wc_entry_t *entry, svn_node_kind_t path_kind, svn_boolean_t get_all, + svn_boolean_t is_ignored, apr_pool_t *pool) { svn_wc_status_t *statstruct; SVN_ERR (assemble_status (&statstruct, path, entry, path_kind, - get_all, pool)); + get_all, is_ignored, pool)); if (statstruct) apr_hash_set (statushash, path, APR_HASH_KEY_STRING, statstruct); @@ -316,15 +323,12 @@ /* Read PATH's dirents. */ SVN_ERR (svn_io_get_dirents (&dirents, path, subpool)); - /* Unless specified, add default ignore regular expressions and try + /* Add default ignore regular expressions and try to add any svn:ignore properties from the parent directory. */ patterns = apr_array_make (subpool, 1, sizeof(const char *)); - if (! no_ignore) - { - add_default_ignores (patterns); - SVN_ERR (add_ignore_patterns (path, patterns, subpool)); - } - + add_default_ignores (patterns); + SVN_ERR (add_ignore_patterns (path, patterns, subpool)); + /* Add empty status structures for each of the unversioned things. */ for (hi = apr_hash_first (subpool, dirents); hi; hi = apr_hash_next (hi)) { @@ -367,7 +371,7 @@ /* If we aren't ignoring it, add a status structure for this dirent. */ - if (! ignore_me) + if (no_ignore || ! ignore_me) { printable_path = svn_path_join (path, keystring, pool); @@ -377,6 +381,7 @@ NULL, /* no entry */ *path_kind, FALSE, + ignore_me, pool)); } } @@ -402,7 +407,8 @@ passed to assemble_status() below. */ svn_wc_entry (&entry, path, FALSE, pool); - SVN_ERR (assemble_status (&s, path, entry, svn_node_unknown, TRUE, pool)); + SVN_ERR (assemble_status (&s, path, entry, svn_node_unknown, + TRUE, FALSE, pool)); *status = s; return SVN_NO_ERROR; } @@ -440,7 +446,7 @@ we're ignoring the GET_ALL flag and unconditionally fetching the status structure. */ SVN_ERR (add_status_structure (statushash, path, entry, kind, - TRUE, pool)); + TRUE, FALSE, pool)); } @@ -497,7 +503,8 @@ = apr_hash_get (statushash, fullpath, APR_HASH_KEY_STRING); if (! status) SVN_ERR (add_status_structure (statushash, fullpath, - entry, kind, get_all, pool)); + entry, kind, get_all, FALSE, + pool)); } else { @@ -544,7 +551,7 @@ SVN_ERR (add_status_structure (statushash, fullpath, fullpath_entry, - fullpath_kind, get_all, pool)); + fullpath_kind, get_all, FALSE, pool)); /* Descend only if the subdirectory is a working copy directory (and DESCEND is non-zero ofcourse) */ @@ -561,7 +568,7 @@ /* File entries are ... just fine! */ SVN_ERR (add_status_structure (statushash, fullpath, entry, fullpath_kind, - get_all, pool)); + get_all, FALSE, pool)); } } }