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...@mail.utexas.edu> on 2009/03/02 21:49:35 UTC

Re: ATTENTION: Working Copy format bump (was: svn commit: r36264 ...)

On Mar 2, 2009, at 3:45 PM, Greg Stein wrote:

> Attention everybody:
>
> If you're building clients from /trunk/, then this will bump the
> working copy format from 10 to 11. This will cause 1.6 clients to
> *not* be able to read the working copy.
>
> The format will be silently upgraded as soon as you do a "write"
> operation, such as an update or commit. Operations like "svn status"
> will not update the format.

It should also be noted that in 1.7-final, we won't be silently  
upgrading working copies.  The code to detect and warn about this  
condition just hasn't been written yet.

> There is no "real" format change, but trunk no longer manages some of
> the fields in 'entries' like it used to. Yet 1.6 expects those fields
> to have proper values. Thus... the bump.
>
> Cheers,
> -g
>
> On Mon, Mar 2, 2009 at 22:36, Greg Stein <gs...@gmail.com> wrote:
>> Author: gstein
>> Date: Mon Mar  2 13:36:46 2009
>> New Revision: 36264
>>
>> Log:
>> Bump the working copy format from 10 to 11.
>>
>> Clients expect the 'entries' file to have properly managed  
>> 'has_props'
>> and 'has_prop_mods' fields. These are no longer set by trunk-based
>> clients, so we need a bump to prevent older clients from reading  
>> 'entries'
>> and assuming its values are proper.
>>
>> Note that trunk does not maintain 'cachable_props' and  
>> 'present_props' in
>> the entries file. However, the values (now) placed into those  
>> fields ("")
>> should be usable by older clients. But it is moot with the format  
>> bump.
>>
>> As of this bump, 1.6 clients will produce an error when attempting to
>> access trunk-created working copies. When a trunk client opens a .svn
>> subdirectory for *writing*, then it will silently bump the version.
>>
>> * subversion/libsvn_wc/wc.h:
>>  (SVN_WC__VERSION): bump the value. add comments.
>>  (SVN_WC__VERSION_EXPERIMENTAL): bump up to 12.
>>  (SVN_WC__WC_NG_VERSION): bump to 12.
>>
>> * subversion/libsvn_wc/entries.c:
>>  (upgrade_sql): insert another NULL placeholder for format=11
>>
>> * subversion/libsvn_wc/wc_db.c:
>>  (upgrade_sql): insert another NULL placeholder for format=11
>>
>> * subversion/tests/libsvn_wc/db-test.c:
>>  (data_loading_sql): insert another NULL placeholder for format=11
>>
>> Modified:
>>   trunk/subversion/libsvn_wc/entries.c
>>   trunk/subversion/libsvn_wc/wc.h
>>   trunk/subversion/libsvn_wc/wc_db.c
>>   trunk/subversion/tests/libsvn_wc/db-test.c
>>
>> Modified: trunk/subversion/libsvn_wc/entries.c
>> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_wc/entries.c?pathrev=36264&r1=36263&r2=36264
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> =====================================================================
>> --- trunk/subversion/libsvn_wc/entries.c        Mon Mar  2 13:12:49  
>> 2009        (r36263)
>> +++ trunk/subversion/libsvn_wc/entries.c        Mon Mar  2 13:36:46  
>> 2009        (r36264)
>> @@ -48,8 +48,12 @@
>>
>>  #define MAYBE_ALLOC(x,p) ((x) ? (x) : apr_pcalloc((p),  
>> sizeof(*(x))))
>>
>> -static const char * const upgrade_sql[] = { NULL, NULL, NULL,  
>> NULL, NULL,
>> -  NULL, NULL, NULL, NULL, NULL, NULL, WC_METADATA_SQL };
>> +static const char * const upgrade_sql[] = {
>> +  NULL, NULL, NULL, NULL, NULL,
>> +  NULL, NULL, NULL, NULL, NULL,
>> +  NULL, NULL,
>> +  WC_METADATA_SQL
>> +};
>>
>>  /* This values map to the members of STATEMENTS below, and should  
>> be added
>>    and removed at the same time. */
>>
>> Modified: trunk/subversion/libsvn_wc/wc.h
>> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_wc/wc.h?pathrev=36264&r1=36263&r2=36264
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> =====================================================================
>> --- trunk/subversion/libsvn_wc/wc.h     Mon Mar  2 13:12:49  
>> 2009        (r36263)
>> +++ trunk/subversion/libsvn_wc/wc.h     Mon Mar  2 13:36:46  
>> 2009        (r36264)
>> @@ -70,19 +70,24 @@ extern "C" {
>>  * and sticky depth (for selective/sparse checkouts).
>>  *
>>  * The change from 9 to 10 was the addition of tree-conflicts, file
>> - * externals and a different canonicalization of urls.
>> + * externals and a different canonicalization of urls. Shipped in  
>> 1.6.
>>  *
>> - * The change from 10 to 11 was a complete rewrite of the wc  
>> datastore,
>> + * The change from 10 to 11 was clearing the has_props,  
>> has_prop_mods,
>> + * cachable_props, and present_props values in the entries file.  
>> Older
>> + * client expect proper values for these fields. Note: this change
>> + * occurred during 1.7 development, and is not expected to be  
>> released.
>> + *
>> + * The change from 11 to 12 was a complete rewrite of the wc  
>> datastore,
>>  * which resulted in centralization and migration of data to an  
>> sqlite
>> - * datebase.
>> + * datebase. Shipped in 1.7.
>>  *
>>  * Please document any further format changes here.
>>  */
>>
>> -#define SVN_WC__VERSION 10
>> +#define SVN_WC__VERSION 11
>>
>>  /* ### only used by devs temporarily during 1.7 development. */
>> -#define SVN_WC__VERSION_EXPERIMENTAL 11
>> +#define SVN_WC__VERSION_EXPERIMENTAL 12
>>
>>
>>  /* A version <= this doesn't have property caching in the entries  
>> file. */
>> @@ -99,7 +104,7 @@ extern "C" {
>>  #define SVN_WC__CHANGED_CANONICAL_URLS 10
>>
>>  /* A version < this is pre-wc-ng. */
>> -#define SVN_WC__WC_NG_VERSION 11
>> +#define SVN_WC__WC_NG_VERSION 12
>>
>>  /*** Update traversals. ***/
>>
>>
>> Modified: trunk/subversion/libsvn_wc/wc_db.c
>> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_wc/wc_db.c?pathrev=36264&r1=36263&r2=36264
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> =====================================================================
>> --- trunk/subversion/libsvn_wc/wc_db.c  Mon Mar  2 13:12:49  
>> 2009        (r36263)
>> +++ trunk/subversion/libsvn_wc/wc_db.c  Mon Mar  2 13:36:46  
>> 2009        (r36264)
>> @@ -137,8 +137,12 @@ struct svn_wc__db_pdh_t {
>>  #define SVN__SKIP_SUBDIR
>>
>>  /* ### duplicates entries.c */
>> -static const char * const upgrade_sql[] = { NULL, NULL, NULL,  
>> NULL, NULL,
>> -  NULL, NULL, NULL, NULL, NULL, NULL, WC_METADATA_SQL };
>> +static const char * const upgrade_sql[] = {
>> +  NULL, NULL, NULL, NULL, NULL,
>> +  NULL, NULL, NULL, NULL, NULL,
>> +  NULL, NULL,
>> +  WC_METADATA_SQL
>> +};
>>
>>  /* These values map to the members of STATEMENTS below, and should  
>> be added
>>    and removed at the same time. */
>>
>> Modified: trunk/subversion/tests/libsvn_wc/db-test.c
>> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/tests/libsvn_wc/db-test.c?pathrev=36264&r1=36263&r2=36264
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> =====================================================================
>> --- trunk/subversion/tests/libsvn_wc/db-test.c  Mon Mar  2 13:12:49  
>> 2009        (r36263)
>> +++ trunk/subversion/tests/libsvn_wc/db-test.c  Mon Mar  2 13:36:46  
>> 2009        (r36264)
>> @@ -58,7 +58,7 @@
>>  #define SHA1_1 "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d"
>>
>>  static const char * const data_loading_sql[] = {
>> -  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
>> +  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,  
>> NULL, NULL,
>>   (
>>    /* Load the table and index definitions. */
>>    WC_METADATA_SQL
>>
>> ------------------------------------------------------
>> http://subversion.tigris.org/ds/viewMessage.do?dsForumId=495&dsMessageId=1258377
>>
>
> ------------------------------------------------------
> http://subversion.tigris.org/ds/viewMessage.do?dsForumId=495&dsMessageId=1258398

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