You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by pb...@apache.org on 2012/08/22 19:41:22 UTC

svn commit: r1376154 - in /subversion/branches/inheritable-props/subversion: libsvn_wc/upgrade.c libsvn_wc/wc-metadata.sql libsvn_wc/wc-queries.sql libsvn_wc/wc.h tests/libsvn_wc/db-test.c tests/libsvn_wc/entries-compat.c

Author: pburba
Date: Wed Aug 22 17:41:22 2012
New Revision: 1376154

URL: http://svn.apache.org/viewvc?rev=1376154&view=rev
Log:
On the inheritable-props branch: Bump WC format and handle upgrades.

Manual and auto WC upgrades will now bump the WC format to 30, add the
inherited_props column to the NODES table, and flag the WC roots that
require iprop caches.  Upgrade is still a disconnected operation however,
so the caches are not populated until the next update.

* subversion/libsvn_wc/upgrade.c

  (bump_to_30): Renamed the previous function here to bump_to_31 (it isn't
   currently used).  The "new" bump_to_30 adds the inherited_props column
   to the NODES table and then sets the inherited_props of each WC root,
   excluding roots mapped to the repos root, to and empty array.

  (bump_to_31): The old bump_to_30.

  (svn_wc__upgrade_sdb): Handle the bump to 30.

* subversion/libsvn_wc/wc-metadata.sql

  (CREATE TABLE NODES): Move the inherited_props column to the rightmost
   column so the ordering is the same for a newly created format 30 WC
   as it is for one upgraded to 30.

  (STMT_UPGRADE_TO_30): New, replaces the old STMT_UPGRADE_TO_30 which is
   renamed to...

  (STMT_UPGRADE_TO_31): ...this.

  (STMT_UPGRADE_30_SELECT_CONFLICT_SEPARATE): Renamed to...

  (STMT_UPGRADE_31_SELECT_CONFLICT_SEPARATE): ...this.

  (STMT_UPGRADE_30_SET_CONFLICT): Renamed to...

  (STMT_UPGRADE_TO_31): ...this.

* subversion/libsvn_wc/wc-queries.sql

  (STMT_SELECT_WCROOT_NODES): New.

* subversion/libsvn_wc/wc.h

  (SVN_WC__VERSION): Bump from 29 to 30.

* subversion/tests/libsvn_wc/db-test.c

  (TESTING_DATA): Account for new position of inherited_props column in
   the NODES table.

* subversion/tests/libsvn_wc/entries-compat.c

  (TESTING_DATA,
   M_TESTING_DATA): Account for new position of inherited_props column in
   the NODES table.

Modified:
    subversion/branches/inheritable-props/subversion/libsvn_wc/upgrade.c
    subversion/branches/inheritable-props/subversion/libsvn_wc/wc-metadata.sql
    subversion/branches/inheritable-props/subversion/libsvn_wc/wc-queries.sql
    subversion/branches/inheritable-props/subversion/libsvn_wc/wc.h
    subversion/branches/inheritable-props/subversion/tests/libsvn_wc/db-test.c
    subversion/branches/inheritable-props/subversion/tests/libsvn_wc/entries-compat.c

Modified: subversion/branches/inheritable-props/subversion/libsvn_wc/upgrade.c
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/libsvn_wc/upgrade.c?rev=1376154&r1=1376153&r2=1376154&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/libsvn_wc/upgrade.c (original)
+++ subversion/branches/inheritable-props/subversion/libsvn_wc/upgrade.c Wed Aug 22 17:41:22 2012
@@ -1497,7 +1497,50 @@ svn_wc__upgrade_conflict_skel_from_raw(s
 }
 
 static svn_error_t *
-bump_to_30(void *baton, svn_sqlite__db_t *sdb, apr_pool_t *scratch_pool)
+bump_to_30(void *baton,
+           svn_sqlite__db_t *sdb,
+           apr_pool_t *scratch_pool)
+{
+  svn_sqlite__stmt_t *stmt, *stmt_mark_switch_roots;
+  svn_boolean_t have_row;
+  apr_pool_t *iterpool = svn_pool_create(scratch_pool);
+  apr_array_header_t *empty_iprops = apr_array_make(
+    scratch_pool, 0, sizeof(svn_prop_inherited_item_t *));
+
+  /* Add the inherited_props column to NODES. */
+  SVN_ERR(svn_sqlite__exec_statements(sdb, STMT_UPGRADE_TO_30));
+
+  /* Set inherited_props to an empty array for the roots of all
+     switched subtrees in the WC.  This allows subsequent updates
+     to recognize these roots as needing an iprops cache. */
+  SVN_ERR(svn_sqlite__get_statement(&stmt, sdb,
+                                    STMT_SELECT_WCROOT_NODES));
+  SVN_ERR(svn_sqlite__step(&have_row, stmt));
+
+  SVN_ERR(svn_sqlite__get_statement(&stmt_mark_switch_roots, sdb,
+                                    STMT_UPDATE_IPROP));
+  while (have_row)
+    {
+      const char *switched_relpath = svn_sqlite__column_text(stmt, 1, NULL);
+      apr_int64_t wc_id = svn_sqlite__column_int64(stmt, 0);
+
+      SVN_ERR(svn_sqlite__bindf(stmt_mark_switch_roots, "is", wc_id,
+                                switched_relpath));
+      SVN_ERR(svn_sqlite__bind_iprops(stmt_mark_switch_roots, 3,
+                                      empty_iprops, iterpool));
+      SVN_ERR(svn_sqlite__step_done(stmt_mark_switch_roots));
+      SVN_ERR(svn_sqlite__step(&have_row, stmt));
+    }
+
+  SVN_ERR(svn_sqlite__reset(stmt));
+  svn_pool_destroy(iterpool);
+  return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+bump_to_31(void *baton,
+           svn_sqlite__db_t *sdb,
+           apr_pool_t *scratch_pool)
 {
   struct bump_baton *bb = baton;
   svn_boolean_t have_row;
@@ -1511,10 +1554,10 @@ bump_to_30(void *baton, svn_sqlite__db_t
                           scratch_pool, scratch_pool));
 
   SVN_ERR(svn_sqlite__get_statement(&stmt_store, sdb,
-                                    STMT_UPGRADE_30_SET_CONFLICT));
+                                    STMT_UPGRADE_31_SET_CONFLICT));
 
   SVN_ERR(svn_sqlite__get_statement(&stmt, sdb,
-                                    STMT_UPGRADE_30_SELECT_CONFLICT_SEPARATE));
+                                    STMT_UPGRADE_31_SELECT_CONFLICT_SEPARATE));
   SVN_ERR(svn_sqlite__step(&have_row, stmt));
 
   while (have_row)
@@ -1556,7 +1599,7 @@ bump_to_30(void *baton, svn_sqlite__db_t
     }
   SVN_ERR(svn_sqlite__reset(stmt));
 
-  SVN_ERR(svn_sqlite__exec_statements(sdb, STMT_UPGRADE_TO_30));
+  SVN_ERR(svn_sqlite__exec_statements(sdb, STMT_UPGRADE_TO_31));
   SVN_ERR(svn_wc__db_close(db));
   return SVN_NO_ERROR;
 }
@@ -1834,12 +1877,18 @@ svn_wc__upgrade_sdb(int *result_format,
         *result_format = 29;
         /* FALLTHROUGH  */
 
-#if SVN_WC__VERSION >= 30
       case 29:
         SVN_ERR(svn_sqlite__with_transaction(sdb, bump_to_30, &bb,
                                              scratch_pool));
         *result_format = 30;
         /* FALLTHROUGH  */
+
+#if SVN_WC__VERSION >= 31
+      case 30:
+        SVN_ERR(svn_sqlite__with_transaction(sdb, bump_to_31, &bb,
+                                             scratch_pool));
+        *result_format = 31;
+        /* FALLTHROUGH  */
 #endif
       /* ### future bumps go here.  */
 #if 0

Modified: subversion/branches/inheritable-props/subversion/libsvn_wc/wc-metadata.sql
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/libsvn_wc/wc-metadata.sql?rev=1376154&r1=1376153&r2=1376154&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/libsvn_wc/wc-metadata.sql (original)
+++ subversion/branches/inheritable-props/subversion/libsvn_wc/wc-metadata.sql Wed Aug 22 17:41:22 2012
@@ -412,10 +412,6 @@ CREATE TABLE NODES (
      have no information about the properties (a non-present node). */
   properties  BLOB,
 
-  /* serialized skel of this node's inherited properties. NULL if this
-     is not the BASE of a WC root node. */
-  inherited_props  BLOB,
-
   /* NULL depth means "default" (typically svn_depth_infinity) */
   /* ### depth on WORKING? seems this is a BASE-only concept. how do
      ### you do "files" on an added-directory? can't really ignore
@@ -479,6 +475,10 @@ CREATE TABLE NODES (
      ### anyway. */
   file_external  INTEGER,
 
+  /* serialized skel of this node's inherited properties. NULL if this
+     is not the BASE of a WC root node. */
+  inherited_props  BLOB,
+
   PRIMARY KEY (wc_id, local_relpath, op_depth)
 
   );
@@ -779,9 +779,17 @@ PRAGMA user_version = 29;
 
 /* ------------------------------------------------------------------------- */
 
-/* Format 30 currently just contains some nice to haves that should be included
-   with the next format bump  */
+/* Format 30 adds the inherited_props column to the NODES table. */
 -- STMT_UPGRADE_TO_30
+ALTER TABLE NODES ADD COLUMN inherited_props BLOB;
+
+PRAGMA user_version = 30;
+
+/* ------------------------------------------------------------------------- */
+
+/* Format 31 currently just contains some nice to haves that should be included
+   with the next format bump  */
+-- STMT_UPGRADE_TO_31
 CREATE UNIQUE INDEX IF NOT EXISTS I_NODES_MOVED
 ON NODES (wc_id, moved_to, op_depth);
 
@@ -791,9 +799,9 @@ CREATE INDEX IF NOT EXISTS I_PRISTINE_MD
    working copies that were never updated by 1.7.0+ style clients */
 UPDATE nodes SET file_external=1 WHERE file_external IS NOT NULL;
 
-PRAGMA user_version = 30;
+PRAGMA user_version = 31;
 
--- STMT_UPGRADE_30_SELECT_CONFLICT_SEPARATE
+-- STMT_UPGRADE_31_SELECT_CONFLICT_SEPARATE
 SELECT wc_id, local_relpath,
   conflict_old, conflict_working, conflict_new, prop_reject, tree_conflict_data
 FROM actual_node
@@ -804,7 +812,7 @@ WHERE conflict_old IS NOT NULL
    OR tree_conflict_data IS NOT NULL
 ORDER by wc_id, local_relpath
 
--- STMT_UPGRADE_30_SET_CONFLICT
+-- STMT_UPGRADE_31_SET_CONFLICT
 UPDATE actual_node SET conflict_data = ?3, conflict_old = NULL,
   conflict_working = NULL, conflict_new = NULL, prop_reject = NULL,
   tree_conflict_data = NULL

Modified: subversion/branches/inheritable-props/subversion/libsvn_wc/wc-queries.sql
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/libsvn_wc/wc-queries.sql?rev=1376154&r1=1376153&r2=1376154&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/libsvn_wc/wc-queries.sql (original)
+++ subversion/branches/inheritable-props/subversion/libsvn_wc/wc-queries.sql Wed Aug 22 17:41:22 2012
@@ -1129,6 +1129,28 @@ WHERE wc_id = ?1 AND local_relpath = ?2 
 SELECT 1 FROM nodes WHERE op_depth > 0
 LIMIT 1
 
+-- STMT_SELECT_WCROOT_NODES
+/* Select all base nodes which are the root of a WC, including
+   switched subtrees, but excluding those which map to the root
+   of the repos.
+
+   ### IPROPS: Is this query horribly inefficient?  Quite likely,
+   ### but it only runs during an upgrade, so do we care? */
+SELECT l.wc_id, l.local_relpath FROM nodes as l
+LEFT OUTER JOIN nodes as r
+ON l.wc_id = r.wc_id
+   AND l.repos_id = r.repos_id
+   AND r.local_relpath = l.parent_relpath
+WHERE (l.local_relpath == '' AND l.repos_path != '')
+   OR (l.op_depth = 0
+       AND l.local_relpath != ''
+       AND l.repos_path != ltrim(r.repos_path
+                                 || '/'
+                                 || ltrim(substr(l.local_relpath,
+                                                 length(l.parent_relpath) + 1),
+                                          '/'),
+                                 '/'))
+
 /* --------------------------------------------------------------------------
  * Complex queries for callback walks, caching results in a temporary table.
  *

Modified: subversion/branches/inheritable-props/subversion/libsvn_wc/wc.h
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/libsvn_wc/wc.h?rev=1376154&r1=1376153&r2=1376154&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/libsvn_wc/wc.h (original)
+++ subversion/branches/inheritable-props/subversion/libsvn_wc/wc.h Wed Aug 22 17:41:22 2012
@@ -151,13 +151,16 @@ extern "C" {
  *
  * == 1.7.x shipped with format 29
  *
- * The bump to 30 switched the conflict storage to a skel inside conflict_data.
+ * The bump to 30 added the inherited_props column in the NODES table.
+ * Bumped in r????????.
+ *
+ * The bump to 31 switched the conflict storage to a skel inside conflict_data.
  * Also clears some known invalid state.
  *
  * Please document any further format changes here.
  */
 
-#define SVN_WC__VERSION 29
+#define SVN_WC__VERSION 30
 
 
 /* Formats <= this have no concept of "revert text-base/props".  */

Modified: subversion/branches/inheritable-props/subversion/tests/libsvn_wc/db-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/tests/libsvn_wc/db-test.c?rev=1376154&r1=1376153&r2=1376154&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/tests/libsvn_wc/db-test.c (original)
+++ subversion/branches/inheritable-props/subversion/tests/libsvn_wc/db-test.c Wed Aug 22 17:41:22 2012
@@ -96,92 +96,92 @@ static const char * const TESTING_DATA =
    /* load the base nodes into the nodes table */
   "insert into nodes values ("
   "  1, '', 0, null, 1, '', 1, 'normal',"
-  "  null, null, 'dir', '()', null, 'infinity', null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
-  "  null, null, null, null);"
+  "  null, null, 'dir', '()', 'infinity', null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'A', 0, '', 1, 'A', 1, 'normal',"
-  "  null, null, 'file', '()', null,null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
-  "  10, null, null, null);"
+  "  null, null, 'file', '()', null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  10, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'B', 0, '', 1, 'B', null, 'excluded',"
-  "  null, null, 'symlink', null, null,null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  null, null, 'symlink', null, null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'C', 0, '', 1, 'C', null, 'absent',"
-  "  null, null, 'unknown', null, null,null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  null, null, 'unknown', null, null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'D', 0, '', 1, 'D', null, 'not-present',"
-  "  null, null, 'unknown', null, null,null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  null, null, 'unknown', null, null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'E', 0, '', 1, 'E', null, 'incomplete',"
-  "  null, null, 'unknown', null, null,null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  null, null, 'unknown', null, null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'F', 0, '', 1, 'F', 1, 'normal',"
-  "  null, null, 'file', '()', null, null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
-  "  15, null, null, null);"
+  "  null, null, 'file', '()', null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  15, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'G', 0, '', 2, 'G-alt', 1, 'normal',"
-  "  null, null, 'file', '()', null, null, '$sha1$" SHA1_1 "', null, 2, " TIME_2s ", '" AUTHOR_2 "',"
-  "  15, null, null, null);"
+  "  null, null, 'file', '()', null, '$sha1$" SHA1_1 "', null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+  "  15, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'H', 0, '', 1, 'H', 1, 'normal',"
-  "  null, null, 'symlink', '()', null, null, null, 'H-target', 1, " TIME_1s ", '" AUTHOR_1 "',"
-  "  null, null, null, null);"
+  "  null, null, 'symlink', '()', null, null, 'H-target', 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'I', 0, '', 1, 'I', 1, 'normal',"
-  "  null, null, 'dir', '()', null, null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
-  "  null, null, null, null);"
+  "  null, null, 'dir', '()', null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J', 0, '', 1, 'J', 1, 'normal',"
-  "  null, null, 'dir', '()', null, null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
-  "  null, null, null, null);"
+  "  null, null, 'dir', '()', null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-e', 0, 'J', 1, 'J/J-e', 1, 'normal',"
-  "  null, 'other/place', 'dir', '()', null, null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
-  "  null, null, null, null);"
+  "  null, 'other/place', 'dir', '()', null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-e/J-e-a', 0, 'J/J-e', 1, 'J/J-e/J-e-a', 1, 'normal',"
-  "  null, null, 'file', '()', null, null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
-  "  15, null, null, null);"
+  "  null, null, 'file', '()', null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  15, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-e/J-e-b', 0, 'J/J-e', 1, 'J/J-e/J-e-b', 1, 'normal',"
-  "  null, null, 'dir', '()', null, null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
-  "  null, null, null, null);"
+  "  null, null, 'dir', '()', null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-e/J-e-b/Jeba', 0, 'J/J-e/J-e-b', 1, 'J/J-e/J-e-b/Jeba', 1, 'normal',"
-  "  null, null, 'file', '()', null, null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
-  "  15, null, null, null);"
+  "  null, null, 'file', '()', null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  15, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-f', 0, 'J', 1, 'J/J-f', 1, 'normal',"
-  "  null, null, 'dir', '()', null, null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
-  "  null, null, null, null);"
+  "  null, null, 'dir', '()', null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-f/J-f-a', 0, 'J/J-f', 1, 'J/J-f/J-f-a', 1, 'normal',"
-  "  null, null, 'dir', '()', null, null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
-  "  null, null, null, null);"
+  "  null, null, 'dir', '()', null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'K', 0, '', 1, 'K', 1, 'normal',"
-  "  null, null, 'dir', '()', null, null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
-  "  null, null, null, null);"
+  "  null, null, 'dir', '()', null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'K/K-a', 0, 'K', 1, 'K/K-a', 1, 'normal',"
-  "  null, null, 'file', '()', null, null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
-  "  15, null, null, null);"
+  "  null, null, 'file', '()', null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  15, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'K/K-b', 0, 'K', 1, 'K/K-b', 1, 'normal',"
-  "  null, 'moved/away', 'file', '()', null, null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
-  "  15, null, null, null);"
+  "  null, 'moved/away', 'file', '()', null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  15, null, null, null, null);"
   ""
    /* Load data into NODES table;
       ### op_depths have not been calculated by me yet;
       the value 1 is just 'good enough' to make the nodes WORKING nodes. */
   "insert into nodes values ("
   "  1, 'I', 1, '', 2, 'some/dir', 2, 'normal',"
-  "  0, null, 'dir', '()', null, 'immediates', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', 'immediates', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+  "  null, null, null, null, null);"
 
    /* I'm not sure what the working J is supposed to represent.  It
       replaces the base J, but is it a copy or not?  It has no
@@ -189,136 +189,136 @@ static const char * const TESTING_DATA =
       implies they are children of a copied J. */
   "insert into nodes values ("
   "  1, 'J', 1, '', null, null, null, 'normal',"
-  "  0, null, 'dir', '()', null, 'immediates', null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-a', 1, 'J', null, null, null, 'normal',"
-  "  0, null, 'file', '()', null, null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'file', '()', null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-b', 2, 'J', 2, 'some/dir', 2, 'normal',"
-  "  0, null, 'dir', '()', null, 'infinity', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', 'infinity', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-b/J-b-a', 3, 'J/J-b', 2, 'another/dir', 2, 'normal',"
-  "  0, null, 'dir', '()', null, 'infinity', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', 'infinity', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-b/J-b-b', 2, 'J/J-b', null, null, 2, 'normal',"
-  "  0, null, 'file', '()', null, null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'file', '()', null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-c', 1, 'J', null, null, null, 'normal',"
-  "  0, null, 'dir', '()', null, null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-c/J-c-a', 1, 'J/J-c', null, null, null, 'normal',"
-  "  0, null, 'dir', '()', null, null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-c', 2, 'J', null, null, null, 'base-deleted',"
-  "  0, null, 'dir', '()', null, null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-c/J-c-a', 2, 'J/J-c', null, null, null, 'base-deleted',"
-  "  0, null, 'dir', '()', null, null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-d', 2, 'J', 2, 'moved/file', 2, 'normal',"
-  "  1, null, 'file', '()', null, null, '$sha1$" SHA1_1 "', null, 2, " TIME_2s ", '" AUTHOR_2 "',"
-  "  10, null, null, null);"
+  "  1, null, 'file', '()', null, '$sha1$" SHA1_1 "', null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+  "  10, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'moved/file', 0, 'moved', 2, 'moved/file', 2, 'normal',"
-  "  0, null, 'file', '()', null, null, '$sha1$" SHA1_1 "', null, 2, " TIME_2s ", '" AUTHOR_2 "',"
-  "  10, null, null, null);"
+  "  0, null, 'file', '()', null, '$sha1$" SHA1_1 "', null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+  "  10, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'moved/file', 2, 'moved', 2, 'moved/file', 2, 'base-deleted',"
-  "  0, 'J/J-d', 'file', '()', null, null, null, null, null, null, null,"
-  "  10, null, null, null);"
+  "  0, 'J/J-d', 'file', '()', null, null, null, null, null, null,"
+  "  10, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-e', 1, 'J', null, null, null, 'normal',"
-  "  0, null, 'dir', '()', null, null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-e/J-e-a', 1, 'J/J-e', null, null, null, 'normal',"
-  "  0, null, 'file', '()', null, null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'file', '()', null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-e/J-e-b', 1, 'J/J-e', null, null, null, 'normal',"
-  "  0, null, 'dir', '()', null, null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-e', 2, 'J', null, null, null, 'base-deleted',"
-  "  0, null, 'dir', '()', null, null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-e/J-e-a', 2, 'J/J-e', null, null, null, 'base-deleted',"
-  "  0, null, 'file', '()', null, null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'file', '()', null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-e/J-e-b', 2, 'J/J-e', null, null, null, 'base-deleted',"
-  "  0, null, 'dir', '()', null, null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-e/J-e-b/Jeba', 1, 'J/J-e/J-e-b', null, null, null, 'base-deleted',"
-  "  0, null, 'file', '()', null, null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'file', '()', null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-f', 1, 'J', null, null, null, 'normal',"
-  "  0, null, 'dir', '()', null, 'immediates', null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-f/J-f-a', 1, 'J/J-f', null, null, null, 'base-deleted',"
-  "  0, null, 'dir', '()', null, 'immediates', null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'K', 1, '', null, null, null, 'base-deleted',"
-  "  0, null, 'dir', '()', null, null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'K/K-a', 1, 'K', null, null, null, 'base-deleted',"
-  "  0, null, 'file', '()', null, null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'file', '()', null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'K/K-b', 1, 'K', null, null, null, 'base-deleted',"
-  "  0, null, 'file', '()', null, null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'file', '()', null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'L', 1, '', null, null, null, 'normal',"
-  "  0, null, 'dir', '()', null, 'immediates', null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'L/L-a', 1, 'L', null, null, null, 'normal',"
-  "  0, null, 'dir', '()', null, 'immediates', null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'L/L-a/L-a-a', 1, 'L/L-a', null, null, null, 'normal',"
-  "  0, null, 'dir', '()', null, 'immediates', null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'L/L-a', 2, 'L', null, null, null, 'base-deleted',"
-  "  0, null, 'dir', '()', null, 'immediates', null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'L/L-a/L-a-a', 2, 'L/L-a', null, null, null, 'base-deleted',"
-  "  0, null, 'dir', '()', null, 'immediates', null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'other/place', 2, 'other', null, null, null, 'normal',"
-  "  1, null, 'dir', '()', null, 'immediates', null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  1, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'other/place/J-e-a', 2, 'other/place', null, null, null, 'normal',"
-  "  0, null, 'dir', '()', null, 'immediates', null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'other/place/J-e-b', 2, 'other/place', null, null, null, 'normal',"
-  "  null, null, 'dir', '()', null, null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
-  "  null, null, null, null);"
+  "  null, null, 'dir', '()', null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'other/place/J-e-b/Jeba', 0, 'other/place/J-e-b', null, null, null, 'normal',"
-  "  null, null, 'file', '()', null, null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
-  "  15, null, null, null);"
+  "  null, null, 'file', '()', null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  15, null, null, null, null);"
    "insert into actual_node values ("
    "  1, 'I', '', null, null, null, null, null, 'changelist', null, "
    "  null, null, null, null, null);"

Modified: subversion/branches/inheritable-props/subversion/tests/libsvn_wc/entries-compat.c
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/tests/libsvn_wc/entries-compat.c?rev=1376154&r1=1376153&r2=1376154&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/tests/libsvn_wc/entries-compat.c (original)
+++ subversion/branches/inheritable-props/subversion/tests/libsvn_wc/entries-compat.c Wed Aug 22 17:41:22 2012
@@ -95,172 +95,172 @@ static const char * const TESTING_DATA =
    /* load the base nodes into the nodes table */
   "insert into nodes values ("
   "  1, '', 0, null, 1, '', 1, 'normal',"
-  "  null, null, 'dir', '()', null, 'infinity', null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
-  "  null, null, null, null);"
+  "  null, null, 'dir', '()', 'infinity', null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'A', 0, '', 1, 'A', 1, 'normal',"
-  "  null, null, 'file', '()', null, null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
-  "  10, null, null, null);"
+  "  null, null, 'file', '()', null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  10, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'B', 0, '', 1, 'B', null, 'excluded',"
-  "  null, null, 'symlink', null, null, null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  null, null, 'symlink', null, null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'C', 0, '', 1, 'C', null, 'absent',"
-  "  null, null, 'unknown', null, null, null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  null, null, 'unknown', null, null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'D', 0, '', 1, 'D', null, 'not-present',"
-  "  null, null, 'unknown', null, null, null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  null, null, 'unknown', null, null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'E', 0, '', 1, 'E', null, 'incomplete',"
-  "  null, null, 'unknown', null, null, null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  null, null, 'unknown', null, null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'F', 0, '', 1, 'F', 1, 'normal',"
-  "  null, null, 'file', '()', null, null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
-  "  15, null, null, null);"
+  "  null, null, 'file', '()', null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  15, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'G', 0, '', 2, 'G-alt', 1, 'normal',"
-  "  null, null, 'file', '()', null, null, '$sha1$" SHA1_1 "', null, 2, " TIME_2s ", '" AUTHOR_2 "',"
-  "  15, null, null, null);"
+  "  null, null, 'file', '()', null, '$sha1$" SHA1_1 "', null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+  "  15, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'H', 0, '', 1, 'H', 1, 'normal',"
-  "  null, null, 'symlink', '()', null, null, null, 'H-target', 1, " TIME_1s ", '" AUTHOR_1 "',"
-  "  null, null, null, null);"
+  "  null, null, 'symlink', '()', null, null, 'H-target', 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'I', 0, '', 1, 'I', 1, 'normal',"
-  "  null, null, 'dir', '()', null, null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
-  "  null, null, null, null);"
+  "  null, null, 'dir', '()', null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J', 0, '', 1, 'J', 1, 'normal',"
-  "  null, null, 'dir', '()', null, null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
-  "  null, null, null, null);"
+  "  null, null, 'dir', '()', null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-e', 0, 'J', 1, 'J/J-e', 1, 'normal',"
-  "  null, null, 'dir', '()', null, null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
-  "  null, null, null, null);"
+  "  null, null, 'dir', '()', null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-e/J-e-a', 0, 'J/J-e', 1, 'J/J-e/J-e-a', 1, 'normal',"
-  "  null, null, 'file', '()', null, null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
-  "  15, null, null, null);"
+  "  null, null, 'file', '()', null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  15, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-e/J-e-b', 0, 'J/J-e', 1, 'J/J-e/J-e-b', 1, 'normal',"
-  "  null, null, 'dir', '()', null, null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
-  "  null, null, null, null);"
+  "  null, null, 'dir', '()', null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-e/J-e-b/Jeba', 0, 'J/J-e/J-e-b', 1, 'J/J-e/J-e-b/Jeba', 1, 'normal',"
-  "  null, null, 'file', '()', null, null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
-  "  15, null, null, null);"
+  "  null, null, 'file', '()', null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  15, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-f', 0, 'J', 1, 'J/J-f', 1, 'normal',"
-  "  null, null, 'dir', '()', null, null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
-  "  null, null, null, null);"
+  "  null, null, 'dir', '()', null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-f/J-f-a', 0, 'J/J-f', 1, 'J/J-f/J-f-a', 1, 'normal',"
-  "  null, null, 'dir', '()', null, null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
-  "  null, null, null, null);"
+  "  null, null, 'dir', '()', null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'K', 0, '', 1, 'K', 1, 'normal',"
-  "  null, null, 'dir', '()', null, null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
-  "  null, null, null, null);"
+  "  null, null, 'dir', '()', null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'K/K-a', 0, 'K', 1, 'K/K-a', 1, 'normal',"
-  "  null, null, 'file', '()', null, null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
-  "  15, null, null, null);"
+  "  null, null, 'file', '()', null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  15, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'K/K-b', 0, 'K', 1, 'K/K-b', 1, 'normal',"
-  "  null, null, 'file', '()', null, null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
-  "  15, null, null, null);"
+  "  null, null, 'file', '()', null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  15, null, null, null, null);"
   ""
    /* Load data into NODES table;
       ### op_depths have not been calculated by me yet;
       the value 1 is just 'good enough' to make the nodes WORKING nodes. */
   "insert into nodes values ("
   "  1, 'I', 1, '', 2, 'some/dir', 2, 'normal',"
-  "  0, null, 'dir', '()', null, 'immediates', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', 'immediates', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J', 1, '', null, null, null, 'normal',"
-  "  0, null, 'dir', '()', null, 'immediates', null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-a', 1, 'J', null, null, null, 'normal',"
-  "  0, null, 'file', '()', null, null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'file', '()', null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-b', 1, 'J', 2, 'some/dir', 2, 'normal',"
-  "  0, null, 'dir', '()', null, 'infinity', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', 'infinity', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-b/J-b-a', 1, 'J/J-b', 2, 'another/dir', 2, 'normal',"
-  "  0, null, 'dir', '()', null, 'infinity', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', 'infinity', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-b/J-b-b', 1, 'J/J-b', null, null, null, 'normal',"
-  "  0, null, 'file', '()', null, null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'file', '()', null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-c', 1, 'J', null, null, null, 'not-present',"
-  "  0, null, 'dir', '()', null, null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-c/J-c-a', 1, 'J/J-c', null, null, null, 'not-present',"
-  "  0, null, 'dir', '()', null, null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-d', 1, 'J', 2, 'moved/file', 2, 'normal',"
-  "  1, null, 'file', '()', null, null, '$sha1$" SHA1_1 "', null, 2, " TIME_2s ", '" AUTHOR_2 "',"
-  "  10, null, null, null);"
+  "  1, null, 'file', '()', null, '$sha1$" SHA1_1 "', null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+  "  10, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-e', 1, 'J', null, null, null, 'not-present',"
-  "  0, 'other/place', 'dir', '()', null, null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, 'other/place', 'dir', '()', null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-e/J-e-a', 1, 'J/J-e', null, null, null, 'not-present',"
-  "  0, null, 'file', '()', null, null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'file', '()', null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-e/J-e-b', 1, 'J/J-e', null, null, null, 'not-present',"
-  "  0, null, 'dir', '()', null, null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-e/J-e-b/Jeba', 1, 'J/J-e/J-e-b', null, null, null, 'base-deleted',"
-  "  0, null, 'file', '()', null, null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'file', '()', null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-f', 1, 'J', null, null, null, 'normal',"
-  "  0, null, 'dir', '()', null, 'immediates', null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-f/J-f-a', 1, 'J/J-f', null, null, null, 'base-deleted',"
-  "  0, null, 'dir', '()', null, 'immediates', null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'K', 1, '', null, null, null, 'base-deleted',"
-  "  0, null, 'dir', '()', null, null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'K/K-a', 1, 'K', null, null, null, 'base-deleted',"
-  "  0, null, 'file', '()', null, null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'file', '()', null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'K/K-b', 1, 'K', null, null, null, 'base-deleted',"
-  "  0, 'moved/away', 'file', '()', null, null, null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, 'moved/away', 'file', '()', null, null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'L', 1, '', null, null, null, 'normal',"
-  "  0, null, 'dir', '()', null, 'immediates', null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'L/L-a', 1, 'L', null, null, null, 'not-present',"
-  "  0, null, 'dir', '()', null, 'immediates', null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'L/L-a/L-a-a', 1, 'L/L-a', null, null, null, 'not-present',"
-  "  0, null, 'dir', '()', null, 'immediates', null, null, null, null, null,"
-  "  null, null, null, null);"
+  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, null, null, null);"
    "insert into actual_node values ("
    "  1, 'I', '', null, null, null, null, null, 'changelist', null, "
    "  null, null, null, null, null);"
@@ -273,12 +273,12 @@ static const char * const TESTING_DATA =
    "  "
    "insert into nodes values ("
    "  1, 'M', 0, '', 1, 'M', 1, 'normal', "
-   "  null, null, 'dir', '()', null, null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "', "
-   "  null, null, null, null);"
+   "  null, null, 'dir', '()', null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "', "
+   "  null, null, null, null, null);"
    "insert into nodes values ("
    "  1, 'M/M-a', 0, 'M', 1, 'M/M-a', 1, 'not-present', "
-   "  null, null, 'file', '()', null, null, null, null, 1, null, null, "
-   "  null, null, null, null);"
+   "  null, null, 'file', '()', null, null, null, 1, null, null, "
+   "  null, null, null, null, null);"
    );
 
 
@@ -294,8 +294,8 @@ static const char * const M_TESTING_DATA
 
    "insert into nodes values ("
    "  1, '', 0, null, 1, 'M', 1, 'normal',"
-   "  null, null, 'dir', '()', null, 'infinity', null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
-   "  null, null, null, null);"
+   "  null, null, 'dir', '()', 'infinity', null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+   "  null, null, null, null, null);"
    );
 
 



Re: svn commit: r1376154 - in /subversion/branches/inheritable-props/subversion: libsvn_wc/upgrade.c libsvn_wc/wc-metadata.sql libsvn_wc/wc-queries.sql libsvn_wc/wc.h tests/libsvn_wc/db-test.c tests/libsvn_wc/entries-compat.c

Posted by Paul Burba <pt...@gmail.com>.
On Thu, Aug 23, 2012 at 3:05 AM, Branko Čibej <br...@wandisco.com> wrote:
> On 23.08.2012 00:13, Bert Huijben wrote:
>> Note that the old bump_to_30 code (conflict handling stuff and index
>> fixes) was just waiting for the next format bump in order not to add
>> an unneeded extra format bump, so if you want to merge this back to
>> trunk before trunk is bumped your bump and the original bump to 30
>> should be a single format bump.

Ah, thanks for the explanation of what the old bump_to_30 was doing.
And got it: Single bump!

> Can you bump the merge to a bump in a separate bump?

I shouldn't read this stuff while drinking tea.

-- 
Paul T. Burba
CollabNet, Inc. -- www.collab.net -- Enterprise Cloud Development
Skype: ptburba

> --
> Certified & Supported Apache Subversion Downloads:
> http://www.wandisco.com/subversion/download
>

Re: svn commit: r1376154 - in /subversion/branches/inheritable-props/subversion: libsvn_wc/upgrade.c libsvn_wc/wc-metadata.sql libsvn_wc/wc-queries.sql libsvn_wc/wc.h tests/libsvn_wc/db-test.c tests/libsvn_wc/entries-compat.c

Posted by Branko Čibej <br...@wandisco.com>.
On 23.08.2012 00:13, Bert Huijben wrote:
> Note that the old bump_to_30 code (conflict handling stuff and index
> fixes) was just waiting for the next format bump in order not to add
> an unneeded extra format bump, so if you want to merge this back to
> trunk before trunk is bumped your bump and the original bump to 30
> should be a single format bump. 

Can you bump the merge to a bump in a separate bump?

-- 
Certified & Supported Apache Subversion Downloads:
http://www.wandisco.com/subversion/download


RE: svn commit: r1376154 - in /subversion/branches/inheritable-props/subversion: libsvn_wc/upgrade.c libsvn_wc/wc-metadata.sql libsvn_wc/wc-queries.sql libsvn_wc/wc.h tests/libsvn_wc/db-test.c tests/libsvn_wc/entries-compat.c

Posted by Bert Huijben <be...@qqmail.nl>.

> -----Original Message-----
> From: pburba@apache.org [mailto:pburba@apache.org]
> Sent: woensdag 22 augustus 2012 19:41
> To: commits@subversion.apache.org
> Subject: svn commit: r1376154 - in /subversion/branches/inheritable-
> props/subversion: libsvn_wc/upgrade.c libsvn_wc/wc-metadata.sql
> libsvn_wc/wc-queries.sql libsvn_wc/wc.h tests/libsvn_wc/db-test.c
> tests/libsvn_wc/entries-compat.c
> 
> Author: pburba
> Date: Wed Aug 22 17:41:22 2012
> New Revision: 1376154
> 
> URL: http://svn.apache.org/viewvc?rev=1376154&view=rev
> Log:
> On the inheritable-props branch: Bump WC format and handle upgrades.
> 
> Manual and auto WC upgrades will now bump the WC format to 30, add the
> inherited_props column to the NODES table, and flag the WC roots that
> require iprop caches.  Upgrade is still a disconnected operation however,
> so the caches are not populated until the next update.
> 
> * subversion/libsvn_wc/upgrade.c
> 
>   (bump_to_30): Renamed the previous function here to bump_to_31 (it isn't
>    currently used).  The "new" bump_to_30 adds the inherited_props column
>    to the NODES table and then sets the inherited_props of each WC root,
>    excluding roots mapped to the repos root, to and empty array.
> 
>   (bump_to_31): The old bump_to_30.
> 
>   (svn_wc__upgrade_sdb): Handle the bump to 30.

Note that the old bump_to_30 code (conflict handling stuff and index fixes) was just waiting for the next format bump in order not to add an unneeded extra format bump, so if you want to merge this back to trunk before trunk is bumped your bump and the original bump to 30 should be a single format bump.

	Bert