/* Are there any changes to relevant (normal) props in PROPCHANGES? */ static svn_boolean_t props_changed(const apr_array_header_t *propchanges, apr_pool_t *scratch_pool) { apr_array_header_t *props; svn_error_clear(svn_categorize_props(propchanges, NULL, NULL, &props, scratch_pool)); return (props->nelts != 0); }
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 revision_baton *rb = baton; svn_node_kind_t node_kind; if (! SVN_IS_VALID_REVNUM(base_revision)) base_revision = rb->rev - 1; SVN_ERR(svn_ra_check_path(rb->pb->aux_session, path, base_revision, &node_kind, scratch_pool)); if (node_kind == svn_node_file) { SVN_ERR(svn_ra_get_file(rb->pb->aux_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(rb->pb->aux_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); } return SVN_NO_ERROR; }