On Thu, May 5, 2011 at 09:58, <rhuij...@apache.org> wrote: >... > +++ subversion/trunk/subversion/libsvn_wc/status.c Thu May 5 13:58:14 2011 >... > @@ -1230,27 +1132,39 @@ get_dir_status(const struct walk_status_ > && info->status != svn_wc__db_status_excluded > && info->status != svn_wc__db_status_absent) > { > + svn_depth_t dir_depth; > if (depth == svn_depth_files && info->kind == > svn_wc__db_kind_dir) > continue; > > /* Handle this entry (possibly recursing). */ > - SVN_ERR(handle_dir_entry(wb, > - node_abspath, > - info->status, > - info->kind, > - dir_repos_root_url, > - dir_repos_relpath, > - info, > - dirent_p, > - ignore_patterns, > - depth == svn_depth_infinity > - ? depth > - : svn_depth_empty, > - get_all, > - no_ignore, > - info->had_props, > - status_func, status_baton, > - cancel_func, cancel_baton, iterpool)); > + dir_depth = (depth == svn_depth_infinity) ? depth > + : svn_depth_empty;
To clarify this, the interior 'depth' term can just be the svn_depth_infinity constant. But then... this localvar isn't really needed. See below. > + SVN_ERR(send_status_structure(wb, node_abspath, > + dir_repos_root_url, > + dir_repos_relpath, > + info, dirent_p, get_all, > + status_func, status_baton, > + iterpool)); > + > + /* Descend only if the subdirectory is a working copy directory > + and if DEPTH permits it. */ > + if ((info->kind == svn_wc__db_kind_dir) > + && ((dir_depth == svn_depth_unknown > + || dir_depth >= svn_depth_immediates))) And the above check becomes simplified: && (depth == svn_depth_infinity) >... > @@ -1322,7 +1236,7 @@ hash_stash(void *baton, > { > apr_hash_t *stat_hash = baton; > apr_pool_t *hash_pool = apr_hash_pool_get(stat_hash); > - assert(! apr_hash_get(stat_hash, path, APR_HASH_KEY_STRING)); > + SVN_ERR_ASSERT(! apr_hash_get(stat_hash, path, APR_HASH_KEY_STRING)); > apr_hash_set(stat_hash, apr_pstrdup(hash_pool, path), > APR_HASH_KEY_STRING, svn_wc_dup_status3(status, hash_pool)); This is not mentioned in the log message. Intentional? Cheers, -g