hwri...@apache.org wrote on Tue, Jan 31, 2012 at 23:40:06 -0000:
> Author: hwright
> Date: Tue Jan 31 23:40:06 2012
> New Revision: 1238862
> 
> URL: http://svn.apache.org/viewvc?rev=1238862&view=rev
> Log:
> Ev2 shims: Add a prop fetching function for svnrdump.  This prevents crashes,
> but doesn't improve any correctness--yet.
> 
> * subversion/svnrdump/dump_editor.c
>   (fetch_props_func): New.
>   (svn_rdump__get_dump_editor): Use the prop fetching function.
> 
> Modified:
>     subversion/trunk/subversion/svnrdump/dump_editor.c
> 
> Modified: subversion/trunk/subversion/svnrdump/dump_editor.c
> URL: 
> http://svn.apache.org/viewvc/subversion/trunk/subversion/svnrdump/dump_editor.c?rev=1238862&r1=1238861&r2=1238862&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/svnrdump/dump_editor.c (original)
> +++ subversion/trunk/subversion/svnrdump/dump_editor.c Tue Jan 31 23:40:06 
> 2012
> @@ -886,6 +886,45 @@ fetch_base_func(const char **filename,
>    return SVN_NO_ERROR;
>  }
>  
> +static svn_error_t *
> +fetch_props_func(apr_hash_t **props,
> +                 void *baton,
> +                 const char *path,
> +                 svn_revnum_t base_revision,
> +                 apr_pool_t *result_pool,
> +                 apr_pool_t *scratch_pool)
> +{
> +  struct dump_edit_baton *eb = baton;
> +  svn_node_kind_t node_kind;
> +
> +  SVN_ERR(svn_ra_check_path(eb->ra_session, path, base_revision, &node_kind,
> +                            scratch_pool));
> +
> +  if (node_kind == svn_node_file)
> +    {
> +      SVN_ERR(svn_ra_get_file(eb->ra_session, path, base_revision,
> +                              NULL, NULL, props, result_pool));
> +    }
> +  else if (node_kind == svn_node_dir)
> +    {
> +      apr_array_header_t *tmp_props;
> +
> +      SVN_ERR(svn_ra_get_dir2(eb->ra_session, NULL, NULL, props, path,
> +                              base_revision, 0 /* Dirent fields */,
> +                              result_pool));
> +      tmp_props = svn_prop_hash_to_array(*props, result_pool);
> +      SVN_ERR(svn_categorize_props(tmp_props, NULL, NULL, &tmp_props,
> +                                   result_pool));
> +      *props = svn_prop_array_to_hash(tmp_props, result_pool);
> +    }
> +  else
> +    {
> +      *props = apr_hash_make(result_pool);

Is it correct to return an empty hash for svn_node_unknown?

> +    }
> +
> +  return SVN_NO_ERROR;
> +}

Reply via email to