svn_wc_conflict_description_t * svn_wc__cd2_to_cd(const svn_wc_conflict_description2_t *conflict, apr_pool_t *result_pool) { svn_wc_conflict_description_t *new_conflict; if (conflict == NULL) return NULL; new_conflict = apr_pcalloc(result_pool, sizeof(*new_conflict)); new_conflict->path = apr_pstrdup(result_pool, conflict->local_abspath); new_conflict->node_kind = conflict->node_kind; new_conflict->kind = conflict->kind; new_conflict->action = conflict->action; new_conflict->reason = conflict->reason; if (conflict->src_left_version) new_conflict->src_left_version = svn_wc_conflict_version_dup(conflict->src_left_version, result_pool); if (conflict->src_right_version) new_conflict->src_right_version = svn_wc_conflict_version_dup(conflict->src_right_version, result_pool); switch (conflict->kind) { case svn_wc_conflict_kind_property: new_conflict->property_name = apr_pstrdup(result_pool, conflict->property_name); /* Falling through. */ case svn_wc_conflict_kind_text: new_conflict->is_binary = conflict->is_binary; if (conflict->mime_type) new_conflict->mime_type = apr_pstrdup(result_pool, conflict->mime_type); if (conflict->base_abspath) new_conflict->base_file = apr_pstrdup(result_pool, conflict->base_abspath); if (conflict->their_abspath) new_conflict->their_file = apr_pstrdup(result_pool, conflict->their_abspath); if (conflict->my_abspath) new_conflict->my_file = apr_pstrdup(result_pool, conflict->my_abspath); if (conflict->merged_file) new_conflict->merged_file = apr_pstrdup(result_pool, conflict->merged_file); break; case svn_wc_conflict_kind_tree: new_conflict->operation = conflict->operation; break; } /* A NULL access baton is allowable by the API. */ new_conflict->access = NULL; return new_conflict; }
svn_wc_conflict_description2_t * svn_wc__conflict_description2_dup(const svn_wc_conflict_description2_t *conflict, apr_pool_t *pool) { svn_wc_conflict_description2_t *new_conflict; new_conflict = apr_pcalloc(pool, sizeof(*new_conflict)); /* Shallow copy all members. */ *new_conflict = *conflict; if (conflict->local_abspath) new_conflict->local_abspath = apr_pstrdup(pool, conflict->local_abspath); if (conflict->property_name) new_conflict->property_name = apr_pstrdup(pool, conflict->property_name); if (conflict->mime_type) new_conflict->mime_type = apr_pstrdup(pool, conflict->mime_type); if (conflict->base_abspath) new_conflict->base_abspath = apr_pstrdup(pool, conflict->base_abspath); if (conflict->their_abspath) new_conflict->their_abspath = apr_pstrdup(pool, conflict->their_abspath); if (conflict->my_abspath) new_conflict->my_abspath = apr_pstrdup(pool, conflict->my_abspath); if (conflict->merged_file) new_conflict->merged_file = apr_pstrdup(pool, conflict->merged_file); if (conflict->src_left_version) new_conflict->src_left_version = svn_wc_conflict_version_dup(conflict->src_left_version, pool); if (conflict->src_right_version) new_conflict->src_right_version = svn_wc_conflict_version_dup(conflict->src_right_version, pool); return new_conflict; }
svn_wc_conflict_description2_t * svn_wc_conflict_description2_dup(const svn_wc_conflict_description2_t *conflict, apr_pool_t *pool) { svn_wc_conflict_description2_t *new_conflict; new_conflict = apr_pcalloc(pool, sizeof(*new_conflict)); /* Shallow copy all members. */ *new_conflict = *conflict; if (conflict->local_abspath) new_conflict->local_abspath = apr_pstrdup(pool, conflict->local_abspath); if (conflict->property_name) new_conflict->property_name = apr_pstrdup(pool, conflict->property_name); if (conflict->mime_type) new_conflict->mime_type = apr_pstrdup(pool, conflict->mime_type); if (conflict->base_abspath) new_conflict->base_abspath = apr_pstrdup(pool, conflict->base_abspath); if (conflict->their_abspath) new_conflict->their_abspath = apr_pstrdup(pool, conflict->their_abspath); if (conflict->my_abspath) new_conflict->my_abspath = apr_pstrdup(pool, conflict->my_abspath); if (conflict->merged_file) new_conflict->merged_file = apr_pstrdup(pool, conflict->merged_file); if (conflict->src_left_version) new_conflict->src_left_version = svn_wc_conflict_version_dup(conflict->src_left_version, pool); if (conflict->src_right_version) new_conflict->src_right_version = svn_wc_conflict_version_dup(conflict->src_right_version, pool); /* ### For property conflicts, cd2 stores prop_reject_abspath in * ### their_abspath, and stores theirs_abspath in merged_file. */ if (conflict->prop_reject_abspath) new_conflict->prop_reject_abspath = new_conflict->their_abspath; if (conflict->prop_value_base) new_conflict->prop_value_base = svn_string_dup(conflict->prop_value_base, pool); if (conflict->prop_value_working) new_conflict->prop_value_working = svn_string_dup(conflict->prop_value_working, pool); if (conflict->prop_value_incoming_old) new_conflict->prop_value_incoming_old = svn_string_dup(conflict->prop_value_incoming_old, pool); if (conflict->prop_value_incoming_new) new_conflict->prop_value_incoming_new = svn_string_dup(conflict->prop_value_incoming_new, pool); return new_conflict; }
svn_wc_conflict_description2_t * svn_wc_conflict_description_create_tree2( const char *local_abspath, svn_node_kind_t node_kind, svn_wc_operation_t operation, const svn_wc_conflict_version_t *src_left_version, const svn_wc_conflict_version_t *src_right_version, apr_pool_t *result_pool) { svn_wc_conflict_description2_t *conflict; SVN_ERR_ASSERT_NO_RETURN(svn_dirent_is_absolute(local_abspath)); conflict = apr_pcalloc(result_pool, sizeof(*conflict)); conflict->local_abspath = apr_pstrdup(result_pool, local_abspath); conflict->node_kind = node_kind; conflict->kind = svn_wc_conflict_kind_tree; conflict->operation = operation; conflict->src_left_version = svn_wc_conflict_version_dup(src_left_version, result_pool); conflict->src_right_version = svn_wc_conflict_version_dup(src_right_version, result_pool); return conflict; }