You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by "Hyrum K. Wright" <hy...@hyrumwright.org> on 2009/07/18 23:55:57 UTC

Re: svn commit: r38443 - trunk/subversion/libsvn_wc

On Jul 18, 2009, at 4:22 PM, Stefan Sperling wrote:

> On Sat, Jul 18, 2009 at 09:23:15AM -0700, Hyrum K. Wright wrote:
>> Author: hwright
>> Date: Sat Jul 18 09:23:15 2009
>> New Revision: 38443
>>
>> Log:
>> Add a tree conflict table to format 13, so we can store the data in a
>> structured format, rather than serialized into skel strings.
>>
>> * subversion/libsvn_wc/wc-metadata.sql:
>>  Add a TREE_CONFLICT_VICTIM table, and drop the tree conflict data  
>> from
>>  the actual node.
>>
>> Modified:
>>   trunk/subversion/libsvn_wc/wc-metadata.sql
>>
>> Modified: trunk/subversion/libsvn_wc/wc-metadata.sql
>> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_wc/wc-metadata.sql?pathrev=38443&r1=38442&r2=38443
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> =====================================================================
>> --- trunk/subversion/libsvn_wc/wc-metadata.sql	Sat Jul 18 08:51:46  
>> 2009	(r38442)
>> +++ trunk/subversion/libsvn_wc/wc-metadata.sql	Sat Jul 18 09:23:15  
>> 2009	(r38443)
>> @@ -327,7 +327,8 @@ CREATE TABLE ACTUAL_NODE (
>>      ### scanning the filesystem). */
>>   text_mod  TEXT,
>>
>> -  /* if a directory, serialized data for all of tree conflicts  
>> therein. */
>> +  /* if a directory, serialized data for all of tree conflicts  
>> therein.
>> +     removed in format 13, in favor of the TREE_CONFLICT_VICTIM  
>> table*/
>>   tree_conflict_data  TEXT,
>>
>>   PRIMARY KEY (wc_id, local_relpath)
>> @@ -371,6 +372,47 @@ CREATE TABLE WORK_QUEUE (
>>   work  BLOB NOT NULL
>>   );
>>
>> +CREATE TABLE TREE_CONFLICT_VICTIM (
>> +  /* specifies the location of this node in the local filesystem */
>> +  wc_id  INTEGER NOT NULL,
>> +  local_relpath  TEXT NOT NULL,
>> +
>> +  /* parent's local_relpath for aggregating children of a given  
>> parent.
>> +     this will be "" if the parent is the wcroot. NULL if this is  
>> the
>> +     wcroot node. */
>> +  parent_relpath  TEXT,
>> +
>> +  /* what kind of node is this? may be "unknown" if the node is  
>> not present */
>> +  kind  TEXT NOT NULL,
>
> Does this map to svn_node_kind or something else?

This maps to svn_wc__db_kind_t, just as the other "kind" fields in the  
schema do.

>> +  /* the name of the property in conflict, or NULL */
>> +  property_name  TEXT,
>
> This describes a property conflict, too?
> Why is the table called TREE_CONFLICT_VICTIM then?

Good point, the table should just be CONFLICT_VICTIM.

>> +  /* conflict information, if kind is 'text' */
>> +  conflict_action  TEXT,
>> +  conflict_reason  TEXT,
>
> This describes a text conflict, too?
> Why is the table called TREE_CONFLICT_VICTIM then?
>
> Those fields can also be set for tree conflicts.
> "action" says what the update/merge wanted to do
> (e.g. "add", "delete") while "reason" says what
> the local change was which conflicted with the action.
>
> While here, we could rename these fields to something
> more sensible than 'action' and 'reason' -- those
> names appear in public API though :(

Sure we can rename them.  Any suggestions?

>> +  /* operation which exposed the conflict, if kind is 'tree' */
>> +  operation  TEXT,
>
> What kind? The field in this table which gives the kind of the node,
> or the kind of conflict being described?

That would be the kind of conflict being described.  A column for this  
needs to be added.

-Hyrum

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2372355