Salient points all. Right now, I'm just stripping out the access
batons and pushing that through the APIs. Creating getter methods for
various fields wouldn't be too difficult. This struct does seem like
a "jack-of-all-conflicts" type of struct, which may prove more
difficult down the road.
On Sep 10, 2009, at 11:03 PM, Greg Stein wrote:
> While you're considering the conflict descriptor, could I suggest
> making it opaque instead? I traced most of the members once, and
> they are actually used *very* rarely. I'm not sure that a struct
> like this makes sense, especially given the difficulty of rev'ing
> structs.
>
> Also, it has been considered that the conflict_* columns could move
> into the CONFLICT table, which could imply moving into this struct,
> too.
Yes, but beyond the scope of what I'm currently trying to do. At some
point, we need to do some serious thinking about the CONFLICT table,
how that relates to our "3 trees" paradigm, and how it maps to
structures in the code.
-Hyrum
>> Wright" <hyrum_at_hyrumwright.org> wrote:
>>
>> Author: hwright
>> Date: Thu Sep 10 20:37:58 2009
>> New Revision: 39233
>>
>> Log:
>> A couple of improvements to the tree conflict descriptor handling.
>>
>> * subversion/libsvn_wc/util.c
>> (svn_wc_conflict_description_create_text2,
>> svn_wc_conflict_description_create_prop2,
>> svn_wc_conflict_description_create_tree2): Assert we are passed
>> an absolute
>> path.
>> (svn_wc_conflict_version_dup): Allow dup'ing a NULL value.
>>
>> Modified:
>> trunk/subversion/libsvn_wc/util.c
>>
>> Modified: trunk/subversion/libsvn_wc/util.c
>> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_wc/util.c?pathrev=39233&r1=39232&r2=39233
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =====================================================================
>> --- trunk/subversion/libsvn_wc/util.c Thu Sep 10 18:33:02
>> 2009 (r39232)
>> +++ trunk/subversion/libsvn_wc/util.c Thu Sep 10 20:37:58
>> 2009 (r39233)
>> @@ -325,6 +325,8 @@ svn_wc_conflict_description_create_text2
>> {
>> 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 = svn_node_file;
>> @@ -342,6 +344,8 @@ svn_wc_conflict_description_create_prop2
>> {
>> 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;
>> @@ -361,6 +365,8 @@ svn_wc_conflict_description_create_tree2
>> {
>> 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;
>> @@ -471,6 +477,9 @@ svn_wc_conflict_version_dup(const svn_wc
>>
>> svn_wc_conflict_version_t *new_version;
>>
>> + if (version == NULL)
>> + return NULL;
>> +
>> new_version = apr_pcalloc(pool, sizeof(*new_version));
>>
>> /* Shallow copy all members. */
>>
>> ------------------------------------------------------
>> http://subversion.tigris.org/ds/viewMessage.do?dsForumId=495&dsMessageId=2393504
>
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2393507
Received on 2009-09-11 06:12:17 CEST