Author: stsp
Date: Mon Aug 18 16:01:07 2014
New Revision: 1618643
URL: http://svn.apache.org/r1618643
Log:
Extend svn_wc_info_t with an array of svn_wc_conflict_description3_t items.
This will allow the svn client to use conflict descriptions of this type.
* subversion/include/svn_wc.h
(svn_wc_info_t): Add 'conflicts2'.
* subversion/libsvn_wc/info.c
(svn_wc_info_dup): Duplicate the new svn_wc_conflict_description3_t array.
(build_info_for_node): Populate the svn_wc_conflict_description3_t array.
Modified:
subversion/trunk/subversion/include/svn_wc.h
subversion/trunk/subversion/libsvn_wc/info.c
Modified: subversion/trunk/subversion/include/svn_wc.h
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_wc.h?rev=1618643&r1=1618642&r2=1618643&view=diff
==============================================================================
--- subversion/trunk/subversion/include/svn_wc.h (original)
+++ subversion/trunk/subversion/include/svn_wc.h Mon Aug 18 16:01:07 2014
@@ -3363,6 +3363,10 @@ typedef struct svn_wc_info_t
/** The path the node was moved to, if it was moved away. Else NULL.
* @since New in 1.8. */
const char *moved_to_abspath;
+
+ /** Array of const svn_wc_conflict_description3_t * which contains info
+ * on any conflict of which this node is a victim. Otherwise NULL. */
+ const apr_array_header_t *conflicts2;
} svn_wc_info_t;
/**
Modified: subversion/trunk/subversion/libsvn_wc/info.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/info.c?rev=1618643&r1=1618642&r2=1618643&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/info.c (original)
+++ subversion/trunk/subversion/libsvn_wc/info.c Mon Aug 18 16:01:07 2014
@@ -67,6 +67,22 @@ svn_wc_info_dup(const svn_wc_info_t *inf
new_info->moved_from_abspath = apr_pstrdup(pool, info->moved_from_abspath);
if (info->moved_to_abspath)
new_info->moved_to_abspath = apr_pstrdup(pool, info->moved_to_abspath);
+ if (info->conflicts2)
+ {
+ int i;
+
+ apr_array_header_t *new_conflicts
+ = apr_array_make(pool, info->conflicts2->nelts,
info->conflicts2->elt_size);
+ for (i = 0; i < info->conflicts2->nelts; i++)
+ {
+ APR_ARRAY_PUSH(new_conflicts, svn_wc_conflict_description3_t *)
+ = svn_wc__conflict_description3_dup(
+ APR_ARRAY_IDX(info->conflicts2, i,
+ const svn_wc_conflict_description3_t *),
+ pool);
+ }
+ new_info->conflicts2 = new_conflicts;
+ }
return new_info;
}
@@ -319,9 +335,13 @@ build_info_for_node(svn_wc__info2_t **in
result_pool, scratch_pool));
wc_info->conflicts = svn_wc__cd3_array_to_cd2_array(conflicts,
result_pool);
+ wc_info->conflicts2 = conflicts;
}
else
- wc_info->conflicts = NULL;
+ {
+ wc_info->conflicts = NULL;
+ wc_info->conflicts2 = NULL;
+ }
/* lock stuff */
if (lock != NULL)