[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn commit: r1099807 - /subversion/trunk/subversion/libsvn_wc/status.c

From: Greg Stein <gstein_at_gmail.com>
Date: Thu, 5 May 2011 12:03:54 -0400

On Thu, May 5, 2011 at 09:58, <rhuijben_at_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
Received on 2011-05-05 18:04:25 CEST

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.