On Tue, Sep 18, 2012 at 05:11:39PM +0200, Stefan Sperling wrote:
> Bert says he is done implementing the new conflict storage
> scheme, and that it needs a format bump to be enabled by default.
> It seems the necessary upgrade code is already in place.
> I'd like to do some work on top of the new conflict storage so
> it would be nice to see it enabled soon (this week).
>
> There are some additional ideas queued up for this format bump:
>
> /* TODO: Rename the "absent" presence value to "server-excluded". wc_db.c
> and this file have references to "absent" which still need to be changed
> to "server-excluded". */
> /* TODO: Un-confuse *_revision column names in the EXTERNALS table to
> "-r<operative> foo@<peg>", as suggested by the patch attached to
> http://svn.haxx.se/dev/archive-2011-09/0478.shtml */
> /* TODO: Remove column parent_relpath from EXTERNALS. We're not using it and
> never will. It's not interesting like in the NODES table: the external's
> parent path may be *anything*: unversioned, "behind" a another WC... */
>
> AFAIK we'll also need to bump the format for inherited properties.
>
> Should we try to get all of this into a single format bump?
> We could also burn a couple of format numbers before releasing the
> final 1.8 format, couldn't we? If so, I'd like to perform a format
> bump including the new conflict storage and the absent -> server-exluded
> rename (which I suggested), and leave the other items for others
> to handle in one or more separate bumps. Any objections?
No responses so far. Does that mean there are no objections?
Here is the diff I'm planning to commit.
So far, I've verified that working copies containing server-excluded
nodes and text conflicts auto-upgrade fine (as of r1387503).
Index: subversion/libsvn_wc/wc-metadata.sql
===================================================================
--- subversion/libsvn_wc/wc-metadata.sql (revision 1387482)
+++ subversion/libsvn_wc/wc-metadata.sql (working copy)
@@ -32,7 +32,7 @@
* the PRESENCE column in these tables has one of the following values
* (see also the C type #svn_wc__db_status_t):
* "normal"
- * "absent" -- server has declared it "absent" (ie. authz failure)
+ * "server-excluded" -- server has declared it excluded (ie. authz failure)
* "excluded" -- administratively excluded (ie. sparse WC)
* "not-present" -- node not present at this REV
* "incomplete" -- state hasn't been filled in
@@ -367,7 +367,7 @@ CREATE TABLE NODES (
current 'op_depth'. This state is badly named, it should be
something like 'deleted'.
- absent: in the 'BASE' tree this is a node that is excluded by
+ server-excluded: in the 'BASE' tree this is a node that is excluded by
authz. The name of the node is known from the parent, but no
other information is available. Not valid in the 'WORKING'
tree as there is no way to commit such a node.
@@ -785,6 +785,9 @@ CREATE INDEX IF NOT EXISTS I_PRISTINE_MD5 ON PRIST
working copies that were never updated by 1.7.0+ style clients */
UPDATE nodes SET file_external=1 WHERE file_external IS NOT NULL;
+/* The former "absent" presence is now called "server-excluded". */
+UPDATE nodes SET presence = "server-excluded" WHERE presence = "absent";
+
PRAGMA user_version = 30;
-- STMT_UPGRADE_30_SELECT_CONFLICT_SEPARATE
@@ -818,9 +821,6 @@ WHERE wc_id = ?1 and local_relpath = ?2
number will be, however, so we're just marking it as 99 for now. */
-- format: 99
-/* TODO: Rename the "absent" presence value to "server-excluded". wc_db.c
- and this file have references to "absent" which still need to be changed
- to "server-excluded". */
/* TODO: Un-confuse *_revision column names in the EXTERNALS table to
"-r<operative> foo@<peg>", as suggested by the patch attached to
http://svn.haxx.se/dev/archive-2011-09/0478.shtml */
Index: subversion/libsvn_wc/wc.h
===================================================================
--- subversion/libsvn_wc/wc.h (revision 1387482)
+++ subversion/libsvn_wc/wc.h (working copy)
@@ -157,7 +157,7 @@ extern "C" {
* 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". */
Index: subversion/libsvn_wc/wc_db.c
===================================================================
--- subversion/libsvn_wc/wc_db.c (revision 1387482)
+++ subversion/libsvn_wc/wc_db.c (working copy)
@@ -293,9 +293,7 @@ static const svn_token_map_t kind_map[] = {
of all the status values. */
static const svn_token_map_t presence_map[] = {
{ "normal", svn_wc__db_status_normal },
- /* ### "absent" is the former name of the "server-excluded" presence.
- * ### We should change it to "server-excluded" with a format bump. */
- { "absent", svn_wc__db_status_server_excluded },
+ { "server-excluded", svn_wc__db_status_server_excluded },
{ "excluded", svn_wc__db_status_excluded },
{ "not-present", svn_wc__db_status_not_present },
{ "incomplete", svn_wc__db_status_incomplete },
Received on 2012-09-19 11:34:22 CEST