You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2010/11/04 21:48:30 UTC

svn commit: r1031230 [20/21] - in /subversion/branches/py-tests-as-modules: ./ build/ build/ac-macros/ build/win32/ contrib/client-side/ notes/ notes/http-and-webdav/ notes/wc-ng/ subversion/bindings/ctypes-python/csvn/ subversion/bindings/javahl/nativ...

Modified: subversion/branches/py-tests-as-modules/subversion/tests/libsvn_wc/db-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/tests/libsvn_wc/db-test.c?rev=1031230&r1=1031229&r2=1031230&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/tests/libsvn_wc/db-test.c (original)
+++ subversion/branches/py-tests-as-modules/subversion/tests/libsvn_wc/db-test.c Thu Nov  4 20:48:21 2010
@@ -48,9 +48,9 @@
 #include "../svn_test.h"
 
 
-#define ROOT_ONE "http://example.com/one/"
-#define ROOT_TWO "http://example.com/two/"
-#define ROOT_THREE "http://example.com/three/"
+#define ROOT_ONE "http://example.com/one"
+#define ROOT_TWO "http://example.com/two"
+#define ROOT_THREE "http://example.com/three"
 
 #define UUID_ONE "uuid1"
 #define UUID_TWO "uuid2"
@@ -75,7 +75,7 @@
 #define MD5_2 "5d41402abc4b2a76b9719d911017c592"
 #define SHA1_1 "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d"
 
-#define I_TC_DATA "((conflict F file update edited deleted (version 23 " ROOT_ONE " 1 2 branch1/ft/F none) (version 23 " ROOT_ONE " 1 3 branch1/ft/F file)) (conflict G file update edited deleted (version 23 " ROOT_ONE " 1 2 branch1/ft/F none) (version 23 " ROOT_ONE " 1 3 branch1/ft/F file)) )"
+#define I_TC_DATA "((conflict F file update edited deleted (version 22 " ROOT_ONE " 1 2 branch1/ft/F none) (version 22 " ROOT_ONE " 1 3 branch1/ft/F file)) (conflict G file update edited deleted (version 22 " ROOT_ONE " 1 2 branch1/ft/F none) (version 22 " ROOT_ONE " 1 3 branch1/ft/F file)) )"
 
 static const char * const TESTING_DATA = (
    /* Load our test data.
@@ -87,417 +87,191 @@ static const char * const TESTING_DATA =
    "insert into repository values (2, '" ROOT_TWO "', '" UUID_TWO "'); "
    "insert into wcroot values (1, null); "
 
-   /* ### The file_externals column in BASE_NODE is temporary, and will be
+   /* ### The file_externals column in NODES is temporary, and will be
       ### removed.  However, to keep the tests passing, we need to add it
       ### to the following insert statements.  *Be sure to remove it*. */
-#ifndef SVN_WC__NODES_ONLY
-   "insert into base_node values ("
-   "  1, '', 1, '', null, 'normal', 'dir', "
-   "  1, null, null, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', 'infinity', null, null, '()', null, 0, "
-   "  null); "
-   "insert into base_node values ("
-   "  1, 'A', null, null, '', 'normal', 'file', "
-   "  1, '$md5 $" MD5_1 "', 10, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
-   "  null); "
-   "insert into base_node values ("
-   "  1, 'B', null, null, '', 'excluded', 'symlink', "
-   "  null, null, null, "
-   "  null, null, null, null, null, null, null, null, null, null); "
-   "insert into base_node values ("
-   "  1, 'C', null, null, '', 'absent', 'unknown', "
-   "  null, null, null, "
-   "  null, null, null, null, null, null, null, null, null, null); "
-   "insert into base_node values ("
-   "  1, 'D', null, null, '', 'not-present', 'unknown', "
-   "  null, null, null, "
-   "  null, null, null, null, null, null, null, null, null, null); "
-   "insert into base_node values ("
-   "  1, 'E', null, null, '', 'incomplete', 'unknown', "
-   "  null, null, null, "
-   "  null, null, null, null, null, null, null, null, null, null); "
-   "insert into base_node values ("
-   "  1, 'F', null, null, '', 'normal', 'file', "
-   "  1, '$sha1$" SHA1_1 "', 15, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
-   "  null); "
-   "insert into base_node values ("
-   "  1, 'G', 2, 'G-alt', '', 'normal', 'file', "
-   "  1, '$sha1$" SHA1_1 "', 15, "
-   "  2, " TIME_2s ", '" AUTHOR_2 "', null, null, null, '()', null, null, "
-   "  null); "
-   "insert into base_node values ("
-   "  1, 'H', null, null, '', 'normal', 'symlink', "
-   "  1, null, null, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', null, 'H-target', null, '()', null, "
-   "  null, null); "
-   "insert into base_node values ("
-   "  1, 'I', null, null, '', 'normal', 'dir', "
-   "  1, null, null, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
-   "  null); "
-   "insert into base_node values ("
-   "  1, 'J', null, null, '', 'normal', 'dir', "
-   "  1, null, null, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
-   "  null); "
-   "insert into base_node values ("
-   "  1, 'J/J-e', null, null, 'J', 'normal', 'dir', "
-   "  1, null, null, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
-   "  null); "
-   "insert into base_node values ("
-   "  1, 'J/J-e/J-e-a', null, null, 'J/J-e', 'normal', 'file', "
-   "  1, '$sha1$" SHA1_1 "', 15, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
-   "  null); "
-   "insert into base_node values ("
-   "  1, 'J/J-e/J-e-b', null, null, 'J/J-e', 'normal', 'dir', "
-   "  1, null, null, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
-   "  null); "
-   "insert into base_node values ("
-   "  1, 'J/J-e/J-e-b/Jeba', null, null, 'J/J-e/J-e-b', 'normal', 'file', "
-   "  1, '$sha1$" SHA1_1 "', 15, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
-   "  null); "
-   "insert into base_node values ("
-   "  1, 'J/J-f', null, null, 'J', 'normal', 'dir', "
-   "  1, null, null, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
-   "  null); "
-   "insert into base_node values ("
-   "  1, 'J/J-f/J-f-a', null, null, 'J/J-f', 'normal', 'dir', "
-   "  1, null, null, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
-   "  null); "
-   "insert into base_node values ("
-   "  1, 'K', null, null, '', 'normal', 'dir', "
-   "  1, null, null, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
-   "  null); "
-   "insert into base_node values ("
-   "  1, 'K/K-a', null, null, 'K', 'normal', 'file', "
-   "  1, '$sha1$" SHA1_1 "', 15, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
-   "  null); "
-   "insert into base_node values ("
-   "  1, 'K/K-b', null, null, 'K', 'normal', 'file', "
-   "  1, '$sha1$" SHA1_1 "', 15, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
-   "  null); "
-   " "
-#endif
-#ifdef SVN_WC__NODES
+
    /* load the base nodes into the nodes table */
   "insert into nodes values ("
-  "  1, '', 0, null, 1, '', 1, 'normal', 'infinity',"
-  "  null, null, 'dir', 1, " TIME_1s ", '" AUTHOR_1 "', null,"
-  "  '()', null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'A', 0, '', null, null, 1, 'normal', null,"
-  "  null, null, 'file', 1, " TIME_1s ", '" AUTHOR_1 "', '$md5 $" MD5_1 "',"
-  "  '()', 10, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'B', 0, '', null, null, null, 'excluded', null,"
-  "  null, null, 'symlink', null, null, null, null,"
-  "  null, null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'C', 0, '', null, null, null, 'absent', null,"
-  "  null, null, 'unknown', null, null, null, null,"
-  "  null, null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'D', 0, '', null, null, null, 'not-present', null,"
-  "  null, null, 'unknown', null, null, null, null,"
-  "  null, null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'E', 0, '', null, null, null, 'incomplete', null,"
-  "  null, null, 'unknown', null, null, null, null,"
-  "  null, null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'F', 0, '', null, null, 1, 'normal', null,"
-  "  null, null, 'file', 1, " TIME_1s ", '" AUTHOR_1 "', '$sha1$" SHA1_1 "',"
-  "  '()', 15, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'G', 0, '', 2, 'G-alt', 1, 'normal', null,"
-  "  null, null, 'file', 2, " TIME_2s ", '" AUTHOR_2 "', '$sha1$" SHA1_1 "',"
-  "  '()', 15, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'H', 0, '', null, null, 1, 'normal', null,"
-  "  null, null, 'symlink', 1, " TIME_1s ", '" AUTHOR_1 "', null,"
-  "  '()', null, null, null, 'H-target', null);"
-  "insert into nodes values ("
-  "  1, 'I', 0, '', null, null, 1, 'normal', null,"
-  "  null, null, 'dir', 1, " TIME_1s ", '" AUTHOR_1 "', null,"
-  "  '()', null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'J', 0, '', null, null, 1, 'normal', null,"
-  "  null, null, 'dir', 1, " TIME_1s ", '" AUTHOR_1 "', null,"
-  "  '()', null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'J/J-e', 0, 'J', null, null, 1, 'normal', null,"
-  "  null, null, 'dir', 1, " TIME_1s ", '" AUTHOR_1 "', null,"
-  "  '()', null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'J/J-e/J-e-a', 0, 'J/J-e', null, null, 1, 'normal', null,"
-  " null, null, 'file', 1, " TIME_1s ", '" AUTHOR_1 "', '$sha1$" SHA1_1 "',"
-  "  '()', 15, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'J/J-e/J-e-b', 0, 'J/J-e', null, null, 1, 'normal', null,"
-  "  null, null, 'dir', 1, " TIME_1s ", '" AUTHOR_1 "', null,"
-  "  '()', null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'J/J-e/J-e-b/Jeba', 0, 'J/J-e/J-e-b', null, null, 1, 'normal', null,"
-  "  null, null, 'file', 1, " TIME_1s ", '" AUTHOR_1 "', '$sha1$" SHA1_1 "',"
-  "  '()', 15, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'J/J-f', 0, 'J', null, null, 1, 'normal', null,"
-  "  null, null, 'dir', 1, " TIME_1s ", '" AUTHOR_1 "', null,"
-  "  '()', null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'J/J-f/J-f-a', 0, 'J/J-f', null, null, 1, 'normal', null,"
-  "  null, null, 'dir', 1, " TIME_1s ", '" AUTHOR_1 "', null,"
-  "  '()', null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'K', 0, '', null, null, 1, 'normal', null,"
-  "  null, null, 'dir', 1, " TIME_1s ", '" AUTHOR_1 "', null,"
-  "  '()', null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'K/K-a', 0, 'K', null, null, 1, 'normal', null,"
-  "   null, null, 'file', 1, " TIME_1s ", '" AUTHOR_1 "', '$sha1$" SHA1_1 "',"
-  "  '()', 15, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'K/K-b', 0, 'K', null, null, 1, 'normal', null,"
-  "  null, null, 'file', 1, " TIME_1s ", '" AUTHOR_1 "', '$sha1$" SHA1_1 "',"
-  " '()', 15, null, null, null, null);"
+  "  1, '', 0, null, 1, '', 1, 'normal',"
+  "  null, null, 'dir', '()', 'infinity', null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  null, null, null, null);"
+  "insert into nodes values ("
+  "  1, 'A', 0, '', 1, 'A', 1, 'normal',"
+  "  null, null, 'file', '()', null, '$md5 $" MD5_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  10, 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);"
+  "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);"
+  "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);"
+  "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);"
+  "insert into nodes values ("
+  "  1, 'F', 0, '', 1, 'F', 1, 'normal',"
+  "  null, null, 'file', '()', null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  15, null, null, null);"
+  "insert into nodes values ("
+  "  1, 'G', 0, '', 2, 'G-alt', 1, 'normal',"
+  "  null, null, 'file', '()', null, '$sha1$" SHA1_1 "', null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+  "  15, null, null, null);"
+  "insert into nodes values ("
+  "  1, 'H', 0, '', 1, 'H', 1, 'normal',"
+  "  null, null, 'symlink', '()', null, null, 'H-target', 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  null, null, null, null);"
+  "insert into nodes values ("
+  "  1, 'I', 0, '', 1, 'I', 1, 'normal',"
+  "  null, null, 'dir', '()', null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  null, null, null, null);"
+  "insert into nodes values ("
+  "  1, 'J', 0, '', 1, 'J', 1, 'normal',"
+  "  null, null, 'dir', '()', null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  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, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  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, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  15, 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, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  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, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  15, 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, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  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, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  null, null, null, null);"
+  "insert into nodes values ("
+  "  1, 'K', 0, '', 1, 'K', 1, 'normal',"
+  "  null, null, 'dir', '()', null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  null, null, null, null);"
+  "insert into nodes values ("
+  "  1, 'K/K-a', 0, 'K', 1, 'K/K-a', 1, 'normal',"
+  "  null, null, 'file', '()', null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  15, null, null, null);"
+  "insert into nodes values ("
+  "  1, 'K/K-b', 0, 'K', 1, 'K/K-b', 1, 'normal',"
+  "  null, null, 'file', '()', null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  15, null, null, null);"
   ""
-#endif
-#ifndef SVN_WC__NODES_ONLY
-   "insert into working_node values ("
-   "  1, 'I', '', 'normal', 'dir', "
-   "  null, null, "
-   "  2, " TIME_2s ", '" AUTHOR_2 "', 'immediates', null, "
-   "  2, 'some/dir', 2, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'J', '', 'normal', 'dir', "
-   "  null, null, "
-   "  null, null, null, 'immediates', null, "
-   "  null, null, null, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'J/J-a', 'J', 'normal', 'file', "
-   "  null, null, "
-   "  null, null, null, null, null, "
-   "  null, null, null, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'J/J-b', 'J', 'normal', 'dir', "
-   "  null, null, "
-   "  2, " TIME_2s ", '" AUTHOR_2 "', 'infinity', null, "
-   "  2, 'some/dir', 2, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'J/J-b/J-b-a', 'J/J-b', 'normal', 'dir', "
-   "  null, null, "
-   "  2, " TIME_2s ", '" AUTHOR_2 "', 'infinity', null, "
-   "  2, 'another/dir', 2, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'J/J-b/J-b-b', 'J/J-b', 'normal', 'file', "
-   "  null, null, "
-   "  null, null, null, null, null, "
-   "  null, null, null, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'J/J-c', 'J', 'not-present', 'dir', "
-   "  null, null, "
-   "  null, null, null, null, null, "
-   "  null, null, null, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'J/J-c/J-c-a', 'J/J-c', 'not-present', 'dir', "
-   "  null, null, "
-   "  null, null, null, null, null, "
-   "  null, null, null, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'J/J-d', 'J', 'normal', 'file', "
-   "  '$md5 $" MD5_1 "', 10, "
-   "  2, " TIME_2s ", '" AUTHOR_2 "', null, null, "
-   "  2, 'moved/file', 2, 1, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'J/J-e', 'J', 'not-present', 'dir', "
-   "  null, null, "
-   "  null, null, null, null, null, "
-   "  null, null, null, 0, 'other/place', null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'J/J-e/J-e-a', 'J/J-e', 'not-present', 'file', "
-   "  null, null, "
-   "  null, null, null, null, null, "
-   "  null, null, null, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'J/J-e/J-e-b', 'J/J-e', 'not-present', 'dir', "
-   "  null, null, "
-   "  null, null, null, null, null, "
-   "  null, null, null, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'J/J-e/J-e-b/Jeba', 'J/J-e/J-e-b', 'base-deleted', 'file', "
-   "  null, null, "
-   "  null, null, null, null, null, "
-   "  null, null, null, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'J/J-f', 'J', 'normal', 'dir', "
-   "  null, null, "
-   "  null, null, null, 'immediates', null, "
-   "  null, null, null, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'J/J-f/J-f-a', 'J/J-f', 'base-deleted', 'dir', "
-   "  null, null, "
-   "  null, null, null, 'immediates', null, "
-   "  null, null, null, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'K', '', 'base-deleted', 'dir', "
-   "  null, null, "
-   "  null, null, null, null, null, "
-   "  null, null, null, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'K/K-a', 'K', 'base-deleted', 'file', "
-   "  null, null, "
-   "  null, null, null, null, null, "
-   "  null, null, null, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'K/K-b', 'K', 'base-deleted', 'file', "
-   "  null, null, "
-   "  null, null, null, null, null, "
-   "  null, null, null, 0, 'moved/away', null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'L', '', 'normal', 'dir', "
-   "  null, null, "
-   "  null, null, null, 'immediates', null, "
-   "  null, null, null, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'L/L-a', 'L', 'not-present', 'dir', "
-   "  null, null, "
-   "  null, null, null, 'immediates', null, "
-   "  null, null, null, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'L/L-a/L-a-a', 'L', 'not-present', 'dir', "
-   "  null, null, "
-   "  null, null, null, 'immediates', null, "
-   "  null, null, null, 0, null, null, '()', 0); "
-   " "
-#endif
-#ifdef SVN_WC__NODES
    /* 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', 'immediates',"
-  "  0, null, 'dir', 2, " TIME_2s ", ' " AUTHOR_2 " ', null, '()',"
-  "  null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'J', 1, '', null, null, null, 'normal', 'immediates',"
-  "  0, null, 'dir', null, null, null, null, '()',"
-  "  null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'J/J-a', 1, 'J', null, null, null, 'normal', null,"
-  "  0, null, 'file', null, null, null, null, '()',"
-  "  null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'J/J-b', 1, 'J', 2, 'some/dir', 2, 'normal', 'infinity',"
-  "  0, null, 'dir', 2, " TIME_2s ", ' " AUTHOR_2 " ', null, '()',"
-  "  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', 'infinity',"
-  "  0, null, 'dir', 2, " TIME_2s ", ' " AUTHOR_2 " ', null, '()',"
-  "  null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'J/J-b/J-b-b', 1, 'J/J-b', null, null, null, 'normal', null,"
-  "  0, null, 'file', null, null, null, null, '()',"
-  "  null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'J/J-c', 1, 'J', null, null, null, 'not-present', null,"
-  "  0, null, 'dir', 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', null,"
-  "  0, null, 'dir', null, null, null, null, '()',"
-  "  null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'J/J-d', 1, 'J', 2, 'moved/file', 2, 'normal', null,"
-  "  1, null, 'file', 2, " TIME_2s ", ' " AUTHOR_2 " ', '$md5 $ " MD5_1 " ',"
-  " '()', 10, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'J/J-e', 1, 'J', null, null, null, 'not-present', null,"
-  "  0, 'other/place', 'dir', 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', null,"
-  "  0, null, 'file', null, null, null, null, '()',"
-  "  null, null, null, null, null);"
+  "  1, 'I', 1, '', 2, 'some/dir', 2, 'normal',"
+  "  0, null, 'dir', '()', 'immediates', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+  "  null, null, null, null);"
+  "insert into nodes values ("
+  "  1, 'J', 1, '', null, null, null, 'normal',"
+  "  0, null, 'dir', '()', 'immediates', 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);"
+  "insert into nodes values ("
+  "  1, 'J/J-b', 2, 'J', 2, 'some/dir', 2, 'normal',"
+  "  0, null, 'dir', '()', 'infinity', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+  "  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', '()', 'infinity', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+  "  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);"
+  "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);"
+  "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);"
+  "insert into nodes values ("
+  "  1, 'J/J-d', 2, 'J', 2, 'moved/file', 2, 'normal',"
+  "  1, null, 'file', '()', null, '$md5 $" MD5_1 "', null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+  "  10, 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);"
+  "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);"
   "insert into nodes values ("
   "  1, 'J/J-e/J-e-b', 1, 'J/J-e', null, null, null, 'not-present',"
-  "  null, 0, null, 'dir', null, null, null, null, '()',"
-  "  null, null, null, null, null);"
+  "  0, null, 'dir', '()', 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',"
-  "  null, 0, null, 'file', null, null, null, null, '()',"
-  "  null, null, null, null, null);"
+  "  0, null, 'file', '()', null, null, null, null, null, null,"
+  "  null, null, null, null);"
   "insert into nodes values ("
-  "  1, 'J/J-f', 1, 'J', null, null, null, 'normal', 'immediates',"
-  "  0, null, 'dir', null, null, null, null, '()',"
-  "  null, null, null, null, null);"
+  "  1, 'J/J-f', 1, 'J', null, null, null, 'normal',"
+  "  0, null, 'dir', '()', 'immediates', 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',"
-  "  'immediates', 0, null, 'dir', null, null, null, null, '()',"
-  "  null, null, null, null, null);"
+  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, null, null);"
   "insert into nodes values ("
-  "  1, 'K', 1, '', null, null, null, 'base-deleted', null,"
-  "  0, null, 'dir', null, null, null, null, '()',"
-  "  null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'K/K-a', 1, 'K', null, null, null, 'base-deleted', null,"
-  "  0, null, 'file', null, null, null, null, '()',"
-  "  null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'K/K-b', 1, 'K', null, null, null, 'base-deleted', null,"
-  "  0, 'moved/away', 'file', null, null, null, null, '()',"
-  "  null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'L', 1, '', null, null, null, 'normal', 'immediates',"
-  "  0, null, 'dir', null, null, null, null, '()',"
-  "  null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'L/L-a', 1, 'L', null, null, null, 'not-present', 'immediates',"
-  "  0, null, 'dir', null, null, null, null, '()',"
-  "  null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'L/L-a/L-a-a', 1, 'L', null, null, null, 'not-present', 'immediates',"
-  "  0, null, 'dir', null, null, null, null, '()',"
-  "  null, null, null, null, null);"
-#endif
+  "  1, 'K', 1, '', null, null, null, 'base-deleted',"
+  "  0, null, 'dir', '()', 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);"
+  "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);"
+  "insert into nodes values ("
+  "  1, 'L', 1, '', null, null, null, 'normal',"
+  "  0, null, 'dir', '()', 'immediates', 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', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, null, null);"
+  "insert into nodes values ("
+  "  1, 'L/L-a/L-a-a', 1, 'L', null, null, null, 'not-present',"
+  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, null, null);"
    "insert into actual_node values ("
    "  1, 'I', '', null, null, null, null, null, 'changelist', null, "
    "'" I_TC_DATA "', null, null, null, null);"
    "  "
-#ifndef SVN_WC__NODES_ONLY
-   "insert into base_node values ("
-   "  1, 'M', null, null, '', 'normal', 'dir', "
-   "  1, null, null, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
-   "  null); "
-   "insert into working_node values ("
-   "  1, 'M/M-a', 'M', 'not-present', 'file', "
-   "  null, null, "
-   "  null, null, null, null, null, "
-   "  null, null, null, 0, null, null, '()', 0); "
-#endif
-#ifdef SVN_WC__NODES_not_enabled_yet
    "insert into nodes values ("
-   "  1, 'M', null, null, '', 'normal', 'dir', "
-   "  1, null, null, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
-   "  null); "
+   "  1, 'M', 0, '', 1, 'M', null, 'normal', "
+   "  1, null, 'dir', '()', null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+   "  null, null, null, null);"
    "insert into nodes values ("
-   "  1, 'M/M-a', 'M', 'not-present', 'file', "
-   "  null, null, "
-   "  null, null, null, null, null, "
-   "  null, null, null, 0, null, null, '()', 0); "
-#endif
+   "  1, 'M/M-a', 1, 'M', null, null, null, 'not-present', "
+   "  null, null, 'file', '()', null, null, null, null, null, null,"
+   "  null, 0, null, null);"
    );
 
 WC_QUERIES_SQL_DECLARE_STATEMENTS(statements);
@@ -512,9 +286,7 @@ create_fake_wc(const char *subdir, int f
   svn_sqlite__db_t *sdb;
   const char * const my_statements[] = {
     statements[STMT_CREATE_SCHEMA],
-#ifdef SVN_WC__NODES
     statements[STMT_CREATE_NODES],
-#endif
     TESTING_DATA,
     NULL
   };
@@ -630,7 +402,7 @@ test_getting_info(apr_pool_t *pool)
   SVN_TEST_ASSERT(target == NULL);
   SVN_TEST_ASSERT(lock == NULL);
 
-  /* Test: NULL params, file-specific values, inherit repos info. */
+  /* Test: file-specific values. */
   SVN_ERR(svn_wc__db_base_get_info(
             NULL, &kind, NULL,
             &repos_relpath, &repos_root_url, &repos_uuid,
@@ -639,17 +411,8 @@ test_getting_info(apr_pool_t *pool)
             db, svn_dirent_join(local_abspath, "A", pool),
             pool, pool));
   SVN_TEST_ASSERT(kind == svn_wc__db_kind_file);
-  SVN_TEST_ASSERT(repos_relpath == NULL);
-  SVN_TEST_ASSERT(repos_root_url == NULL);
-  SVN_TEST_ASSERT(repos_uuid == NULL);
   SVN_TEST_STRING_ASSERT(MD5_1, svn_checksum_to_cstring(checksum, pool));
   SVN_TEST_ASSERT(translated_size == 10);
-
-  /* Grab the inherited info. */
-  SVN_ERR(svn_wc__db_scan_base_repos(
-            &repos_relpath, &repos_root_url, &repos_uuid,
-            db, svn_dirent_join(local_abspath, "A", pool),
-            pool, pool));
   SVN_TEST_STRING_ASSERT(repos_relpath, "A");
   SVN_TEST_STRING_ASSERT(repos_root_url, ROOT_ONE);
   SVN_TEST_STRING_ASSERT(repos_uuid, UUID_ONE);
@@ -665,9 +428,9 @@ test_getting_info(apr_pool_t *pool)
   SVN_TEST_ASSERT(kind == svn_wc__db_kind_symlink);
   SVN_TEST_ASSERT(status == svn_wc__db_status_excluded);
   SVN_TEST_ASSERT(!SVN_IS_VALID_REVNUM(revision));
-  SVN_TEST_ASSERT(repos_relpath == NULL);
-  SVN_TEST_ASSERT(repos_root_url == NULL);
-  SVN_TEST_ASSERT(repos_uuid == NULL);
+  SVN_TEST_STRING_ASSERT(repos_relpath, "B");
+  SVN_TEST_STRING_ASSERT(repos_root_url, ROOT_ONE);
+  SVN_TEST_STRING_ASSERT(repos_uuid, UUID_ONE);
   SVN_TEST_ASSERT(!SVN_IS_VALID_REVNUM(changed_rev));
   SVN_TEST_ASSERT(changed_date == 0);
   SVN_TEST_ASSERT(changed_author == NULL);
@@ -808,38 +571,41 @@ validate_node(svn_wc__db_t *db,
     }
 
   value = apr_hash_get(props, "p1", APR_HASH_KEY_STRING);
-  SVN_TEST_ASSERT(value != NULL && strcmp(value->data, "v1") == 0);
+  SVN_TEST_STRING_ASSERT(value->data, "v1");
   SVN_ERR(svn_wc__db_base_get_prop(&value, db, path, "p1",
                                    scratch_pool, scratch_pool));
-  SVN_TEST_ASSERT(value != NULL && strcmp(value->data, "v1") == 0);
+  SVN_TEST_STRING_ASSERT(value->data, "v1");
 
   value = apr_hash_get(props, "for-file", APR_HASH_KEY_STRING);
-  SVN_TEST_ASSERT(value != NULL && strcmp(value->data, relpath) == 0);
+  SVN_TEST_STRING_ASSERT(value->data, relpath);
   SVN_ERR(svn_wc__db_base_get_prop(&value, db, path, "for-file",
                                    scratch_pool, scratch_pool));
-  SVN_TEST_ASSERT(value != NULL && strcmp(value->data, relpath) == 0);
+  SVN_TEST_STRING_ASSERT(value->data, relpath);
 
   SVN_ERR(svn_wc__db_read_props(&props, db, path,
                                 scratch_pool, scratch_pool));
   SVN_TEST_ASSERT(props != NULL);
   value = apr_hash_get(props, "p1", APR_HASH_KEY_STRING);
-  SVN_TEST_ASSERT(value != NULL && strcmp(value->data, "v1") == 0);
+  SVN_TEST_STRING_ASSERT(value->data, "v1");
 
   SVN_ERR(svn_wc__db_read_pristine_props(&props, db, path,
                                          scratch_pool, scratch_pool));
   SVN_TEST_ASSERT(props != NULL);
   value = apr_hash_get(props, "p1", APR_HASH_KEY_STRING);
-  SVN_TEST_ASSERT(value != NULL && strcmp(value->data, "v1") == 0);
+  SVN_TEST_STRING_ASSERT(value->data, "v1");
 
   /* Now add a property value and read it back (all on actual) */
-  apr_hash_set(props, "p999", APR_HASH_KEY_STRING, value);
-
-  SVN_ERR(svn_wc__db_op_set_props(db, path, props, NULL, NULL, scratch_pool));
-  SVN_ERR(svn_wc__db_read_props(&props, db, path,
-                                scratch_pool, scratch_pool));
-  SVN_TEST_ASSERT(props != NULL);
-  value = apr_hash_get(props, "p999", APR_HASH_KEY_STRING);
-  SVN_TEST_ASSERT(value != NULL && strcmp(value->data, "v1") == 0);
+  {
+    apr_hash_t *actual_props = apr_hash_copy(scratch_pool, props);
+    apr_hash_set(actual_props, "p999", APR_HASH_KEY_STRING, value);
+    SVN_ERR(svn_wc__db_op_set_props(db, path, actual_props,
+                                    NULL, NULL, scratch_pool));
+    SVN_ERR(svn_wc__db_read_props(&props, db, path,
+                                  scratch_pool, scratch_pool));
+    SVN_TEST_ASSERT(props != NULL);
+    value = apr_hash_get(props, "p999", APR_HASH_KEY_STRING);
+    SVN_TEST_STRING_ASSERT(value->data, "v1");
+  }
 
   return SVN_NO_ERROR;
 }
@@ -915,10 +681,10 @@ test_inserting_nodes(apr_pool_t *pool)
             pool));
 
   /* Create a new not-present symlink node. */
-  SVN_ERR(svn_wc__db_base_add_absent_node(
+  SVN_ERR(svn_wc__db_base_add_not_present_node(
             db, svn_dirent_join(local_abspath, "Q", pool),
             "Q", ROOT_ONE, UUID_ONE, 3,
-            svn_wc__db_kind_symlink, svn_wc__db_status_not_present,
+            svn_wc__db_kind_symlink,
             NULL, NULL,
             pool));
 
@@ -1500,14 +1266,27 @@ test_global_relocate(apr_pool_t *pool)
                                NULL, NULL, NULL, NULL,
                                NULL, NULL, NULL, NULL, NULL,
                                NULL, NULL, NULL, NULL, NULL,
-                               db, svn_dirent_join(local_abspath, "G",
+                               db, svn_dirent_join(local_abspath, "F",
                                                    pool),
                                pool, pool));
-  SVN_TEST_STRING_ASSERT(repos_relpath, "G-alt");
+  SVN_TEST_STRING_ASSERT(repos_relpath, "F");
   SVN_TEST_STRING_ASSERT(repos_root_url, ROOT_THREE);
-  /* The UUID should still be the same. */
   SVN_TEST_STRING_ASSERT(repos_uuid, UUID_ONE);
 
+  /* Alternate repository is not relocated. */
+  SVN_ERR(svn_wc__db_read_info(NULL, NULL, NULL,
+                               &repos_relpath, &repos_root_url, &repos_uuid,
+                               NULL, NULL, NULL, NULL,
+                               NULL, NULL, NULL, NULL,
+                               NULL, NULL, NULL, NULL, NULL,
+                               NULL, NULL, NULL, NULL, NULL,
+                               db, svn_dirent_join(local_abspath, "G",
+                                                   pool),
+                               pool, pool));
+  SVN_TEST_STRING_ASSERT(repos_relpath, "G-alt");
+  SVN_TEST_STRING_ASSERT(repos_root_url, ROOT_TWO);
+  SVN_TEST_STRING_ASSERT(repos_uuid, UUID_TWO);
+
   return SVN_NO_ERROR;
 }
 

Modified: subversion/branches/py-tests-as-modules/subversion/tests/libsvn_wc/entries-compat.c
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/tests/libsvn_wc/entries-compat.c?rev=1031230&r1=1031229&r2=1031230&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/tests/libsvn_wc/entries-compat.c (original)
+++ subversion/branches/py-tests-as-modules/subversion/tests/libsvn_wc/entries-compat.c Thu Nov  4 20:48:21 2010
@@ -75,7 +75,7 @@
 #define MD5_1 "2d18c5e57e84c5b8a5e9a6e13fa394dc"
 #define MD5_2 "5d41402abc4b2a76b9719d911017c592"
 
-#define I_TC_DATA "((conflict F file update edited deleted (version 23 " ROOT_ONE " 1 2 branch1/ft/F none) (version 23 " ROOT_ONE " 1 3 branch1/ft/F file)) (conflict G file update edited deleted (version 23 " ROOT_ONE " 1 2 branch1/ft/F none) (version 23 " ROOT_ONE " 1 3 branch1/ft/F file)) )"
+#define I_TC_DATA "((conflict F file update edited deleted (version 22 " ROOT_ONE " 1 2 branch1/ft/F none) (version 22 " ROOT_ONE " 1 3 branch1/ft/F file)) (conflict G file update edited deleted (version 22 " ROOT_ONE " 1 2 branch1/ft/F none) (version 22 " ROOT_ONE " 1 3 branch1/ft/F file)) )"
 
 static const char * const TESTING_DATA = (
    /* Load our test data.
@@ -87,316 +87,191 @@ static const char * const TESTING_DATA =
    "insert into repository values (2, '" ROOT_TWO "', '" UUID_TWO "'); "
    "insert into wcroot values (1, null); "
 
-   /* ### The file_externals column in BASE_NODE is temporary, and will be
+   /* ### The file_externals column in NODES is temporary, and will be
       ### removed.  However, to keep the tests passing, we need to add it
       ### to the following insert statements.  *Be sure to remove it*. */
-#ifndef SVN_WC__NODES_ONLY
-   "insert into base_node values ("
-   "  1, '', 1, '', null, 'normal', 'dir', "
-   "  1, null, null, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', 'infinity', null, null, '()', null, 0, "
-   "  null); "
-   "insert into base_node values ("
-   "  1, 'A', null, null, '', 'normal', 'file', "
-   "  1, '$md5 $" MD5_1 "', 10, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
-   "  null); "
-   "insert into base_node values ("
-   "  1, 'B', null, null, '', 'excluded', 'symlink', "
-   "  null, null, null, "
-   "  null, null, null, null, null, null, null, null, null, null); "
-   "insert into base_node values ("
-   "  1, 'C', null, null, '', 'absent', 'unknown', "
-   "  null, null, null, "
-   "  null, null, null, null, null, null, null, null, null, null); "
-   "insert into base_node values ("
-   "  1, 'D', null, null, '', 'not-present', 'unknown', "
-   "  null, null, null, "
-   "  null, null, null, null, null, null, null, null, null, null); "
-   "insert into base_node values ("
-   "  1, 'E', null, null, '', 'incomplete', 'unknown', "
-   "  null, null, null, "
-   "  null, null, null, null, null, null, null, null, null, null); "
-   "insert into base_node values ("
-   "  1, 'F', null, null, '', 'normal', 'file', "
-   "  1, '$md5 $" MD5_1 "', 15, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
-   "  null); "
-   "insert into base_node values ("
-   "  1, 'G', 2, 'G-alt', '', 'normal', 'file', "
-   "  1, '$md5 $" MD5_1 "', 15, "
-   "  2, " TIME_2s ", '" AUTHOR_2 "', null, null, null, '()', null, null, "
-   "  null); "
-   "insert into base_node values ("
-   "  1, 'H', null, null, '', 'normal', 'symlink', "
-   "  1, null, null, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', null, 'H-target', null, '()', null, "
-   "  null, null); "
-   "insert into base_node values ("
-   "  1, 'I', null, null, '', 'normal', 'dir', "
-   "  1, null, null, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
-   "  null); "
-   "insert into base_node values ("
-   "  1, 'J', null, null, '', 'normal', 'dir', "
-   "  1, null, null, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
-   "  null); "
-   "insert into base_node values ("
-   "  1, 'J/J-e', null, null, 'J', 'normal', 'dir', "
-   "  1, null, null, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
-   "  null); "
-   "insert into base_node values ("
-   "  1, 'J/J-e/J-e-a', null, null, 'J/J-e', 'normal', 'file', "
-   "  1, '$md5 $" MD5_1 "', 15, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
-   "  null); "
-   "insert into base_node values ("
-   "  1, 'J/J-e/J-e-b', null, null, 'J/J-e', 'normal', 'dir', "
-   "  1, null, null, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
-   "  null); "
-   "insert into base_node values ("
-   "  1, 'J/J-e/J-e-b/Jeba', null, null, 'J/J-e/J-e-b', 'normal', 'file', "
-   "  1, '$md5 $" MD5_1 "', 15, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
-   "  null); "
-   "insert into base_node values ("
-   "  1, 'J/J-f', null, null, 'J', 'normal', 'dir', "
-   "  1, null, null, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
-   "  null); "
-   "insert into base_node values ("
-   "  1, 'J/J-f/J-f-a', null, null, 'J/J-f', 'normal', 'dir', "
-   "  1, null, null, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
-   "  null); "
-   "insert into base_node values ("
-   "  1, 'K', null, null, '', 'normal', 'dir', "
-   "  1, null, null, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
-   "  null); "
-   "insert into base_node values ("
-   "  1, 'K/K-a', null, null, 'K', 'normal', 'file', "
-   "  1, '$md5 $" MD5_1 "', 15, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
-   "  null); "
-   "insert into base_node values ("
-   "  1, 'K/K-b', null, null, 'K', 'normal', 'file', "
-   "  1, '$md5 $" MD5_1 "', 15, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
-   "  null); "
-   " "
-#endif
-#ifdef SVN_WC__NODES
+
    /* load the base nodes into the nodes table */
   "insert into nodes values ("
-  "  1, '', 0, null, 1, '', 1, 'normal', 'infinity',"
-  "  null, null, 'dir', 1, " TIME_1s ", '" AUTHOR_1 "', null,"
-  "  '()', null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'A', 0, '', null, null, 1, 'normal', null,"
-  "  null, null, 'file', 1, " TIME_1s ", '" AUTHOR_1 "', '$md5 $" MD5_1 "',"
-  "  '()', 10, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'B', 0, '', null, null, null, 'excluded', null,"
-  "  null, null, 'symlink', null, null, null, null,"
-  "  null, null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'C', 0, '', null, null, null, 'absent', null,"
-  "  null, null, 'unknown', null, null, null, null,"
-  "  null, null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'D', 0, '', null, null, null, 'not-present', null,"
-  "  null, null, 'unknown', null, null, null, null,"
-  "  null, null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'E', 0, '', null, null, null, 'incomplete', null,"
-  "  null, null, 'unknown', null, null, null, null,"
-  "  null, null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'F', 0, '', null, null, 1, 'normal', null,"
-  "  null, null, 'file', 1, " TIME_1s ", '" AUTHOR_1 "', '$md5 $" MD5_1 "',"
-  "  '()', 15, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'G', 0, '', 2, 'G-alt', 1, 'normal', null,"
-  "  null, null, 'file', 2, " TIME_2s ", '" AUTHOR_2 "', '$md5 $" MD5_1 "',"
-  "  '()', 15, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'H', 0, '', null, null, 1, 'normal', null,"
-  "  null, null, 'symlink', 1, " TIME_1s ", '" AUTHOR_1 "', null,"
-  "  '()', null, null, null, 'H-target', null);"
-  "insert into nodes values ("
-  "  1, 'I', 0, '', null, null, 1, 'normal', null,"
-  "  null, null, 'dir', 1, " TIME_1s ", '" AUTHOR_1 "', null,"
-  "  '()', null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'J', 0, '', null, null, 1, 'normal', null,"
-  "  null, null, 'dir', 1, " TIME_1s ", '" AUTHOR_1 "', null,"
-  "  '()', null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'J/J-e', 0, 'J', null, null, 1, 'normal', null,"
-  "  null, null, 'dir', 1, " TIME_1s ", '" AUTHOR_1 "', null,"
-  "  '()', null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'J/J-e/J-e-a', 0, 'J/J-e', null, null, 1, 'normal', null,"
-  " null, null, 'file', 1, " TIME_1s ", '" AUTHOR_1 "', '$md5 $" MD5_1 "',"
-  "  '()', 15, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'J/J-e/J-e-b', 0, 'J/J-e', null, null, 1, 'normal', null,"
-  "  null, null, 'dir', 1, " TIME_1s ", '" AUTHOR_1 "', null,"
-  "  '()', null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'J/J-e/J-e-b/Jeba', 0, 'J/J-e/J-e-b', null, null, 1, 'normal', null,"
-  "  null, null, 'file', 1, " TIME_1s ", '" AUTHOR_1 "', '$md5 $" MD5_1 "',"
-  "  '()', 15, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'J/J-f', 0, 'J', null, null, 1, 'normal', null,"
-  "  null, null, 'dir', 1, " TIME_1s ", '" AUTHOR_1 "', null,"
-  "  '()', null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'J/J-f/J-f-a', 0, 'J/J-f', null, null, 1, 'normal', null,"
-  "  null, null, 'dir', 1, " TIME_1s ", '" AUTHOR_1 "', null,"
-  "  '()', null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'K', 0, '', null, null, 1, 'normal', null,"
-  "  null, null, 'dir', 1, " TIME_1s ", '" AUTHOR_1 "', null,"
-  "  '()', null, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'K/K-a', 0, 'K', null, null, 1, 'normal', null,"
-  "   null, null, 'file', 1, " TIME_1s ", '" AUTHOR_1 "', '$md5 $" MD5_1 "',"
-  "  '()', 15, null, null, null, null);"
-  "insert into nodes values ("
-  "  1, 'K/K-b', 0, 'K', null, null, 1, 'normal', null,"
-  "  null, null, 'file', 1, " TIME_1s ", '" AUTHOR_1 "', '$md5 $" MD5_1 "',"
-  " '()', 15, null, null, null, null);"
+  "  1, '', 0, null, 1, '', 1, 'normal',"
+  "  null, null, 'dir', '()', 'infinity', null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  null, null, null, null);"
+  "insert into nodes values ("
+  "  1, 'A', 0, '', 1, 'A', 1, 'normal',"
+  "  null, null, 'file', '()', null, '$md5 $" MD5_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  10, 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);"
+  "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);"
+  "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);"
+  "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);"
+  "insert into nodes values ("
+  "  1, 'F', 0, '', 1, 'F', 1, 'normal',"
+  "  null, null, 'file', '()', null, '$md5 $" MD5_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  15, null, null, null);"
+  "insert into nodes values ("
+  "  1, 'G', 0, '', 2, 'G-alt', 1, 'normal',"
+  "  null, null, 'file', '()', null, '$md5 $" MD5_1 "', null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+  "  15, null, null, null);"
+  "insert into nodes values ("
+  "  1, 'H', 0, '', 1, 'H', 1, 'normal',"
+  "  null, null, 'symlink', '()', null, null, 'H-target', 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  null, null, null, null);"
+  "insert into nodes values ("
+  "  1, 'I', 0, '', 1, 'I', 1, 'normal',"
+  "  null, null, 'dir', '()', null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  null, null, null, null);"
+  "insert into nodes values ("
+  "  1, 'J', 0, '', 1, 'J', 1, 'normal',"
+  "  null, null, 'dir', '()', null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  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, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  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, '$md5 $" MD5_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  15, 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, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  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, '$md5 $" MD5_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  15, 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, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  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, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  null, null, null, null);"
+  "insert into nodes values ("
+  "  1, 'K', 0, '', 1, 'K', 1, 'normal',"
+  "  null, null, 'dir', '()', null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  null, null, null, null);"
+  "insert into nodes values ("
+  "  1, 'K/K-a', 0, 'K', 1, 'K/K-a', 1, 'normal',"
+  "  null, null, 'file', '()', null, '$md5 $" MD5_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  15, null, null, null);"
+  "insert into nodes values ("
+  "  1, 'K/K-b', 0, 'K', 1, 'K/K-b', 1, 'normal',"
+  "  null, null, 'file', '()', null, '$md5 $" MD5_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+  "  15, null, null, null);"
   ""
-#endif
-#ifndef SVN_WC__NODES_ONLY
-   "insert into working_node values ("
-   "  1, 'I', '', 'normal', 'dir', "
-   "  null, null, "
-   "  2, " TIME_2s ", '" AUTHOR_2 "', 'immediates', null, "
-   "  2, 'some/dir', 2, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'J', '', 'normal', 'dir', "
-   "  null, null, "
-   "  null, null, null, 'immediates', null, "
-   "  null, null, null, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'J/J-a', 'J', 'normal', 'file', "
-   "  null, null, "
-   "  null, null, null, null, null, "
-   "  null, null, null, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'J/J-b', 'J', 'normal', 'dir', "
-   "  null, null, "
-   "  2, " TIME_2s ", '" AUTHOR_2 "', 'infinity', null, "
-   "  2, 'some/dir', 2, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'J/J-b/J-b-a', 'J/J-b', 'normal', 'dir', "
-   "  null, null, "
-   "  2, " TIME_2s ", '" AUTHOR_2 "', 'infinity', null, "
-   "  2, 'another/dir', 2, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'J/J-b/J-b-b', 'J/J-b', 'normal', 'file', "
-   "  null, null, "
-   "  null, null, null, null, null, "
-   "  null, null, null, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'J/J-c', 'J', 'not-present', 'dir', "
-   "  null, null, "
-   "  null, null, null, null, null, "
-   "  null, null, null, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'J/J-c/J-c-a', 'J/J-c', 'not-present', 'dir', "
-   "  null, null, "
-   "  null, null, null, null, null, "
-   "  null, null, null, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'J/J-d', 'J', 'normal', 'file', "
-   "  '$md5 $" MD5_1 "', 10, "
-   "  2, " TIME_2s ", '" AUTHOR_2 "', null, null, "
-   "  2, 'moved/file', 2, 1, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'J/J-e', 'J', 'not-present', 'dir', "
-   "  null, null, "
-   "  null, null, null, null, null, "
-   "  null, null, null, 0, 'other/place', null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'J/J-e/J-e-a', 'J/J-e', 'not-present', 'file', "
-   "  null, null, "
-   "  null, null, null, null, null, "
-   "  null, null, null, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'J/J-e/J-e-b', 'J/J-e', 'not-present', 'dir', "
-   "  null, null, "
-   "  null, null, null, null, null, "
-   "  null, null, null, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'J/J-e/J-e-b/Jeba', 'J/J-e/J-e-b', 'base-deleted', 'file', "
-   "  null, null, "
-   "  null, null, null, null, null, "
-   "  null, null, null, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'J/J-f', 'J', 'normal', 'dir', "
-   "  null, null, "
-   "  null, null, null, 'immediates', null, "
-   "  null, null, null, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'J/J-f/J-f-a', 'J/J-f', 'base-deleted', 'dir', "
-   "  null, null, "
-   "  null, null, null, 'immediates', null, "
-   "  null, null, null, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'K', '', 'base-deleted', 'dir', "
-   "  null, null, "
-   "  null, null, null, null, null, "
-   "  null, null, null, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'K/K-a', 'K', 'base-deleted', 'file', "
-   "  null, null, "
-   "  null, null, null, null, null, "
-   "  null, null, null, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'K/K-b', 'K', 'base-deleted', 'file', "
-   "  null, null, "
-   "  null, null, null, null, null, "
-   "  null, null, null, 0, 'moved/away', null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'L', '', 'normal', 'dir', "
-   "  null, null, "
-   "  null, null, null, 'immediates', null, "
-   "  null, null, null, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'L/L-a', 'L', 'not-present', 'dir', "
-   "  null, null, "
-   "  null, null, null, 'immediates', null, "
-   "  null, null, null, 0, null, null, '()', 0); "
-   "insert into working_node values ("
-   "  1, 'L/L-a/L-a-a', 'L', 'not-present', 'dir', "
-   "  null, null, "
-   "  null, null, null, 'immediates', null, "
-   "  null, null, null, 0, null, null, '()', 0); "
-   " "
-#endif
-#ifdef SVN_WC__NODES
-#endif
+   /* 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', '()', 'immediates', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+  "  null, null, null, null);"
+  "insert into nodes values ("
+  "  1, 'J', 1, '', null, null, null, 'normal',"
+  "  0, null, 'dir', '()', 'immediates', 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);"
+  "insert into nodes values ("
+  "  1, 'J/J-b', 1, 'J', 2, 'some/dir', 2, 'normal',"
+  "  0, null, 'dir', '()', 'infinity', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+  "  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', '()', 'infinity', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+  "  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);"
+  "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);"
+  "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);"
+  "insert into nodes values ("
+  "  1, 'J/J-d', 1, 'J', 2, 'moved/file', 2, 'normal',"
+  "  1, null, 'file', '()', null, '$md5 $" MD5_1 "', null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+  "  10, 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);"
+  "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);"
+  "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);"
+  "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);"
+  "insert into nodes values ("
+  "  1, 'J/J-f', 1, 'J', null, null, null, 'normal',"
+  "  0, null, 'dir', '()', 'immediates', 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', '()', 'immediates', 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);"
+  "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);"
+  "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);"
+  "insert into nodes values ("
+  "  1, 'L', 1, '', null, null, null, 'normal',"
+  "  0, null, 'dir', '()', 'immediates', 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', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, null, null);"
+  "insert into nodes values ("
+  "  1, 'L/L-a/L-a-a', 1, 'L', null, null, null, 'not-present',"
+  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, null, null);"
    "insert into actual_node values ("
    "  1, 'I', '', null, null, null, null, null, 'changelist', null, "
    "'" I_TC_DATA "', null, null, null, null);"
    "  "
-   "insert into base_node values ("
-   "  1, 'M', null, null, '', 'normal', 'dir', "
-   "  1, null, null, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
-   "  null); "
-   "insert into working_node values ("
-   "  1, 'M/M-a', 'M', 'not-present', 'file', "
-   "  null, null, "
-   "  null, null, null, null, null, "
-   "  null, null, null, 0, null, null, '()', 0); "
+   "insert into nodes values ("
+   "  1, 'M', 0, '', 1, 'M', 1, 'normal', "
+   "  null, null, 'dir', '()', null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "', "
+   "  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, 1, null, null, "
+   "  null, null, null, null);"
    );
 
 
@@ -410,11 +285,10 @@ static const char * const M_TESTING_DATA
    "insert into repository values (2, '" ROOT_TWO "', '" UUID_TWO "'); "
    "insert into wcroot values (1, null); "
 
-   "insert into base_node values ("
-   "  1, '', 1, 'M', null, 'normal', 'dir', "
-   "  1, null, null, "
-   "  1, " TIME_1s ", '" AUTHOR_1 "', 'infinity', null, null, '()', null, 0, "
-   "  null); "
+   "insert into nodes values ("
+   "  1, '', 0, null, 1, 'M', 1, 'normal',"
+   "  null, null, 'dir', '()', 'infinity', null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+   "  null, null, null, null);"
    );
 
 WC_QUERIES_SQL_DECLARE_STATEMENTS(statements);
@@ -452,17 +326,13 @@ create_fake_wc(const char *subdir, int f
   const char *dirpath;
   const char * const my_statements[] = {
     statements[STMT_CREATE_SCHEMA],
-#ifdef SVN_WC__NODES
     statements[STMT_CREATE_NODES],
-#endif
     TESTING_DATA,
     NULL
   };
   const char * const M_statements[] = {
     statements[STMT_CREATE_SCHEMA],
-#ifdef SVN_WC__NODES
     statements[STMT_CREATE_NODES],
-#endif
     M_TESTING_DATA,
     NULL
   };
@@ -661,7 +531,7 @@ test_access_baton_like_locking(apr_pool_
                       SVN_INVALID_REVNUM, NULL, NULL, NULL, NULL, pool));
   SVN_ERR(svn_wc_locked(&locked, D3, pool));
   SVN_TEST_ASSERT(locked);
-  SVN_ERR(svn_wc_revert3(D, adm_access, -1, FALSE,
+  SVN_ERR(svn_wc_revert3(D, adm_access, svn_depth_infinity, FALSE,
                          NULL, NULL, NULL, NULL, NULL, pool));
   SVN_ERR(svn_wc_locked(&locked, D3, pool));
   SVN_TEST_ASSERT(!locked);

Modified: subversion/branches/py-tests-as-modules/subversion/tests/libsvn_wc/pristine-store-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/tests/libsvn_wc/pristine-store-test.c?rev=1031230&r1=1031229&r2=1031230&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/tests/libsvn_wc/pristine-store-test.c (original)
+++ subversion/branches/py-tests-as-modules/subversion/tests/libsvn_wc/pristine-store-test.c Thu Nov  4 20:48:21 2010
@@ -40,6 +40,8 @@
 #include "svn_wc.h"
 #include "svn_client.h"
 
+#include "utils.h"
+
 #include "../../libsvn_wc/wc.h"
 #include "../../libsvn_wc/wc_db.h"
 #include "../../libsvn_wc/wc-queries.h"
@@ -48,18 +50,9 @@
 #include "private/svn_wc_private.h"
 
 #include "../svn_test.h"
-#include "../svn_test_fs.h"
-
 
-#define REPOSITORIES_WORK_DIR "svn-test-work/repositories"
-#define WCS_WORK_DIR "svn-test-work/working-copies"
 
-/* Create an empty repository and WC for the test TEST_NAME, and open a WC
- * DB context.  Set *REPOS_URL to the URL of the new repository, *WC_ABSPATH
- * to the root path of the new WC, and *DB to a new DB context.
- *
- * Create the repository and WC in subdirectories called repos/TEST_NAME and
- * wcs/TEST_NAME respectively, within the current working directory. */
+/* Create repos and WC, and also set *DB to a new DB context. */
 static svn_error_t *
 create_repos_and_wc(const char **repos_url,
                     const char **wc_abspath,
@@ -68,41 +61,8 @@ create_repos_and_wc(const char **repos_u
                     const svn_test_opts_t *opts,
                     apr_pool_t *pool)
 {
-  const char *repos_path = svn_relpath_join(REPOSITORIES_WORK_DIR, test_name,
-                                            pool);
-  const char *wc_path = svn_relpath_join(WCS_WORK_DIR, test_name, pool);
-
-  /* Remove the repo and WC dirs if they already exist, to ensure the test
-   * will run even if a previous failed attempt was not cleaned up. */
-  SVN_ERR(svn_io_remove_dir2(repos_path, TRUE, NULL, NULL, pool));
-  SVN_ERR(svn_io_remove_dir2(wc_path, TRUE, NULL, NULL, pool));
-
-  /* Create the parent dirs of the repo and WC if necessary. */
-  SVN_ERR(svn_io_make_dir_recursively(REPOSITORIES_WORK_DIR, pool));
-  SVN_ERR(svn_io_make_dir_recursively(WCS_WORK_DIR, pool));
-
-  /* Create a repos and set *REPOS_URL to its path. */
-  {
-    svn_repos_t *repos;
-
-    SVN_ERR(svn_test__create_repos(&repos, repos_path, opts, pool));
-    SVN_ERR(svn_uri_get_file_url_from_dirent(repos_url, repos_path, pool));
-  }
-
-  /* Create a WC */
-  {
-    svn_client_ctx_t *ctx;
-    svn_opt_revision_t head_rev = { svn_opt_revision_head, {0} };
-
-    SVN_ERR(svn_client_create_context(&ctx, pool));
-    /* SVN_ERR(svn_config_get_config(&ctx->config, config_dir, pool)); */
-    SVN_ERR(svn_dirent_get_absolute(wc_abspath, wc_path, pool));
-    SVN_ERR(svn_client_checkout3(NULL, *repos_url, *wc_abspath,
-                                 &head_rev, &head_rev, svn_depth_infinity,
-                                 FALSE /* ignore_externals */,
-                                 FALSE /* allow_unver_obstructions */,
-                                 ctx, pool));
-  }
+  SVN_ERR(svn_test__create_repos_and_wc(repos_url, wc_abspath, test_name,
+                                        opts, pool));
 
   /* Open a DB context */
   SVN_ERR(svn_wc__db_open(db, svn_wc__db_openmode_readonly, NULL,
@@ -256,9 +216,7 @@ pristine_get_translated(const svn_test_o
 
     SVN_ERR(svn_wc__db_wclock_obtain(wc_ctx->db, dirname, 0, FALSE, pool));
 
-    SVN_ERR(svn_wc_add4(wc_ctx, versioned_abspath, svn_depth_empty,
-                        NULL, SVN_INVALID_REVNUM, NULL, NULL, NULL, NULL,
-                        pool));
+    SVN_ERR(svn_wc_add_from_disk(wc_ctx, versioned_abspath, NULL, NULL, pool));
     SVN_ERR(svn_wc_prop_set4(wc_ctx, versioned_abspath,
                              "svn:keywords", svn_string_create("Rev", pool),
                              FALSE, NULL, NULL, pool));

Modified: subversion/branches/py-tests-as-modules/subversion/tests/svn_test_main.c
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/tests/svn_test_main.c?rev=1031230&r1=1031229&r2=1031230&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/tests/svn_test_main.c (original)
+++ subversion/branches/py-tests-as-modules/subversion/tests/svn_test_main.c Thu Nov  4 20:48:21 2010
@@ -191,9 +191,12 @@ do_test_num(const char *progname,
   svn_boolean_t test_failed;
   const char *msg = NULL;  /* the message this individual test prints out */
   const struct svn_test_descriptor_t *desc;
+  const int array_size = get_array_size();
 
   /* Check our array bounds! */
-  if ((test_num > get_array_size()) || (test_num <= 0))
+  if (test_num < 0)
+    test_num += array_size + 1;
+  if ((test_num > array_size) || (test_num <= 0))
     {
       printf("FAIL: %s: THERE IS NO TEST NUMBER %2d\n", progname, test_num);
       skip_cleanup = TRUE;
@@ -279,7 +282,6 @@ int
 main(int argc, const char *argv[])
 {
   const char *prog_name;
-  int test_num;
   int i;
   svn_boolean_t got_error = FALSE;
   apr_pool_t *pool, *test_pool;
@@ -425,10 +427,14 @@ main(int argc, const char *argv[])
         {
           for (i = 1; i < argc; i++)
             {
-              if (svn_ctype_isdigit(argv[i][0]))
+              if (svn_ctype_isdigit(argv[i][0]) || argv[i][0] == '-')
                 {
+                  int test_num = atoi(argv[i]);
+                  if (test_num == 0)
+                    /* A --option argument, most likely. */
+                    continue;
+
                   ran_a_test = TRUE;
-                  test_num = atoi(argv[i]);
                   if (do_test_num(prog_name, test_num, FALSE, &opts, test_pool))
                     got_error = TRUE;
 
@@ -458,6 +464,5 @@ main(int argc, const char *argv[])
   svn_pool_destroy(pool);      /* takes test_pool with it */
   apr_terminate();
 
-  exit(got_error);
   return got_error;
 }

Modified: subversion/branches/py-tests-as-modules/tools/client-side/svnmucc/svnmucc-test.py
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/tools/client-side/svnmucc/svnmucc-test.py?rev=1031230&r1=1031229&r2=1031230&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/tools/client-side/svnmucc/svnmucc-test.py (original)
+++ subversion/branches/py-tests-as-modules/tools/client-side/svnmucc/svnmucc-test.py Thu Nov  4 20:48:21 2010
@@ -34,6 +34,10 @@ this_dir = os.path.dirname(os.path.abspa
 sys.path.insert(0, '%s/../../../subversion/tests/cmdline' % (this_dir))
 import svntest
 
+# setup the global 'svntest.main.options' object so functions in the
+# module don't freak out.
+svntest.main._parse_options(arglist=[])
+
 # calculate the top of the build tree
 if len(sys.argv) > 1:
   build_top = os.path.abspath(sys.argv[1])
@@ -275,6 +279,20 @@ def main():
   run_svnmucc(['M /foo/bar'], #---------
               'propdel', 'testprop', 'foo/bar')
 
+  # revision 18
+  run_svnmucc(['M /foo/z.c',
+               'M /foo/foo',
+               ], #---------
+              'propset', 'testprop', 'true', 'foo/z.c',
+              'propset', 'testprop', 'true', 'foo/foo')
+
+  # revision 19
+  run_svnmucc(['M /foo/z.c',
+               'M /foo/foo',
+               ], #---------
+              'propsetf', 'testprop', sys.argv[0], 'foo/z.c',
+              'propsetf', 'testprop', sys.argv[0], 'foo/foo')
+
   # Expected missing revision error
   xrun_svnmucc(['svnmucc: \'a\' is not a revision'
                 ], #---------

Modified: subversion/branches/py-tests-as-modules/tools/client-side/svnmucc/svnmucc.c
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/tools/client-side/svnmucc/svnmucc.c?rev=1031230&r1=1031229&r2=1031230&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/tools/client-side/svnmucc/svnmucc.c (original)
+++ subversion/branches/py-tests-as-modules/tools/client-side/svnmucc/svnmucc.c Thu Nov  4 20:48:21 2010
@@ -141,6 +141,7 @@ typedef enum {
   ACTION_MKDIR,
   ACTION_CP,
   ACTION_PROPSET,
+  ACTION_PROPSETF,
   ACTION_PROPDEL,
   ACTION_PUT,
   ACTION_RM
@@ -161,41 +162,60 @@ struct operation {
   const char *url;       /* to copy, valid for add and replace */
   const char *src_file;  /* for put, the source file for contents */
   apr_hash_t *children;  /* const char *path -> struct operation * */
-  apr_table_t *props;    /* const char *prop_name -> const char *prop_value */
+  apr_hash_t *prop_mods; /* const char *prop_name -> 
+                            const svn_string_t *prop_value */
+  apr_array_header_t *prop_dels; /* const char *prop_name deletions */
   void *baton;           /* as returned by the commit editor */
 };
 
 
-/* State to be passed to set_props iterator */
-struct driver_state {
-  const svn_delta_editor_t *editor;
-  svn_node_kind_t kind;
-  apr_pool_t *pool;
-  void *baton;
-  svn_error_t* err;
-};
-
-
 /* An iterator (for use via apr_table_do) which sets node properties.
    REC is a pointer to a struct driver_state. */
-static int
-set_props(void *rec, const char *key, const char *value)
+static svn_error_t *
+change_props(const svn_delta_editor_t *editor,
+             void *baton,
+             struct operation *child,
+             apr_pool_t *pool)
 {
-  struct driver_state *d_state = (struct driver_state*)rec;
-  svn_string_t *value_svnstring
-    = value ? svn_string_create(value, d_state->pool) : NULL;
-
-  if (d_state->kind == svn_node_dir)
-    d_state->err = d_state->editor->change_dir_prop(d_state->baton, key,
-                                                    value_svnstring,
-                                                    d_state->pool);
-  else
-    d_state->err = d_state->editor->change_file_prop(d_state->baton, key,
-                                                     value_svnstring,
-                                                     d_state->pool);
-  if (d_state->err)
-    return 0;
-  return 1;
+  apr_pool_t *iterpool = svn_pool_create(pool);
+
+  if (child->prop_dels)
+    {
+      int i;
+      for (i = 0; i < child->prop_dels->nelts; i++)
+        {
+          const char *prop_name;
+
+          svn_pool_clear(iterpool);
+          prop_name = APR_ARRAY_IDX(child->prop_dels, i, const char *);
+          if (child->kind == svn_node_dir)
+            SVN_ERR(editor->change_dir_prop(baton, prop_name,
+                                            NULL, iterpool));
+          else
+            SVN_ERR(editor->change_file_prop(baton, prop_name,
+                                             NULL, iterpool));
+        }
+    }
+  if (apr_hash_count(child->prop_mods))
+    {
+      apr_hash_index_t *hi;
+      for (hi = apr_hash_first(pool, child->prop_mods);
+           hi; hi = apr_hash_next(hi))
+        {
+          const void *key;
+          void *val;
+          
+          svn_pool_clear(iterpool);
+          apr_hash_this(hi, &key, NULL, &val);
+          if (child->kind == svn_node_dir)
+            SVN_ERR(editor->change_dir_prop(baton, key, val, iterpool));
+          else
+            SVN_ERR(editor->change_file_prop(baton, key, val, iterpool));
+        }
+    }
+
+  svn_pool_destroy(iterpool);
+  return SVN_NO_ERROR;
 }
 
 
@@ -209,7 +229,7 @@ drive(struct operation *operation,
 {
   apr_pool_t *subpool = svn_pool_create(pool);
   apr_hash_index_t *hi;
-  struct driver_state state;
+
   for (hi = apr_hash_first(pool, operation->children);
        hi; hi = apr_hash_next(hi))
     {
@@ -228,7 +248,7 @@ drive(struct operation *operation,
           SVN_ERR(editor->delete_entry(key, head, operation->baton, subpool));
         }
       /* Opens could be for directories or files. */
-      if (child->operation == OP_OPEN)
+      if (child->operation == OP_OPEN || child->operation == OP_PROPSET)
         {
           if (child->kind == svn_node_dir)
             {
@@ -242,8 +262,7 @@ drive(struct operation *operation,
             }
         }
       /* Adds and replacements could also be for directories or files. */
-      if (child->operation == OP_ADD || child->operation == OP_REPLACE
-          || child->operation == OP_PROPSET)
+      if (child->operation == OP_ADD || child->operation == OP_REPLACE)
         {
           if (child->kind == svn_node_dir)
             {
@@ -288,15 +307,9 @@ drive(struct operation *operation,
          then close it. */
       if (file_baton)
         {
-          if ((child->kind == svn_node_file)
-              && (! apr_is_empty_table(child->props)))
+          if (child->kind == svn_node_file)
             {
-              state.baton = file_baton;
-              state.pool = subpool;
-              state.editor = editor;
-              state.kind = child->kind;
-              if (! apr_table_do(set_props, &state, child->props, NULL))
-                SVN_ERR(state.err);
+              SVN_ERR(change_props(editor, file_baton, child, subpool));
             }
           SVN_ERR(editor->close_file(file_baton, NULL, subpool));
         }
@@ -308,15 +321,9 @@ drive(struct operation *operation,
               || child->operation == OP_REPLACE))
         {
           SVN_ERR(drive(child, head, editor, subpool));
-          if ((child->kind == svn_node_dir)
-              && (! apr_is_empty_table(child->props)))
+          if (child->kind == svn_node_dir)
             {
-              state.baton = child->baton;
-              state.pool = subpool;
-              state.editor = editor;
-              state.kind = child->kind;
-              if (! apr_table_do(set_props, &state, child->props, NULL))
-                SVN_ERR(state.err);
+              SVN_ERR(change_props(editor, child->baton, child, subpool));
             }
           SVN_ERR(editor->close_directory(child->baton, subpool));
         }
@@ -344,7 +351,8 @@ get_operation(const char *path,
       child->operation = OP_OPEN;
       child->rev = SVN_INVALID_REVNUM;
       child->kind = svn_node_dir;
-      child->props = apr_table_make(pool, 0);
+      child->prop_mods = apr_hash_make(pool);
+      child->prop_dels = apr_array_make(pool, 1, sizeof(const char *));
       apr_hash_set(operation->children, path, APR_HASH_KEY_STRING, child);
     }
   return child;
@@ -383,7 +391,7 @@ build(action_code_t action,
       const char *url,
       svn_revnum_t rev,
       const char *prop_name,
-      const char *prop_value,
+      const svn_string_t *prop_value,
       const char *src_file,
       svn_revnum_t head,
       const char *anchor,
@@ -434,17 +442,26 @@ build(action_code_t action,
         return svn_error_createf(SVN_ERR_BAD_URL, NULL,
                                  "cannot set properties on a location being"
                                  " deleted ('%s')", path);
-      SVN_ERR(svn_ra_check_path(session,
-                                copy_src ? copy_src : path,
-                                copy_src ? copy_rev : head,
-                                &operation->kind, pool));
-      if (operation->kind == svn_node_none)
-        return svn_error_createf(SVN_ERR_BAD_URL, NULL,
-                                 "propset: '%s' not found", path);
-      else if ((operation->kind == svn_node_file)
-               && (operation->operation == OP_OPEN))
-        operation->operation = OP_PROPSET;
-      apr_table_set(operation->props, prop_name, prop_value);
+      /* If we're not adding this thing ourselves, check for existence.  */
+      if (! ((operation->operation == OP_ADD) ||
+             (operation->operation == OP_REPLACE)))
+        {
+          SVN_ERR(svn_ra_check_path(session,
+                                    copy_src ? copy_src : path,
+                                    copy_src ? copy_rev : head,
+                                    &operation->kind, pool));
+          if (operation->kind == svn_node_none)
+            return svn_error_createf(SVN_ERR_BAD_URL, NULL,
+                                     "propset: '%s' not found", path);
+          else if ((operation->kind == svn_node_file)
+                   && (operation->operation == OP_OPEN))
+            operation->operation = OP_PROPSET;
+        }
+      if (! prop_value)
+        APR_ARRAY_PUSH(operation->prop_dels, const char *) = prop_name;
+      else
+        apr_hash_set(operation->prop_mods, prop_name,
+                     APR_HASH_KEY_STRING, prop_value);
       if (!operation->rev)
         operation->rev = rev;
       return SVN_NO_ERROR;
@@ -587,7 +604,7 @@ struct action {
 
   /* property name/value */
   const char *prop_name;
-  const char *prop_value;
+  const svn_string_t *prop_value;
 };
 
 static svn_error_t *
@@ -680,6 +697,9 @@ execute(const apr_array_header_t *action
                         action->prop_name, action->prop_value,
                         NULL, head, anchor, session, &root, pool));
           break;
+        case ACTION_PROPSETF:
+        default:
+          SVN_ERR_MALFUNCTION_NO_RETURN();
         }
     }
 
@@ -696,6 +716,23 @@ execute(const apr_array_header_t *action
   return err;
 }
 
+static svn_error_t *
+read_propvalue_file(const svn_string_t **value_p,
+                    const char *filename,
+                    apr_pool_t *pool)
+{
+  svn_stringbuf_t *value;
+  apr_pool_t *scratch_pool = svn_pool_create(pool);
+  apr_file_t *f;
+
+  SVN_ERR(svn_io_file_open(&f, filename, APR_READ | APR_BINARY | APR_BUFFERED,
+                           APR_OS_DEFAULT, scratch_pool));
+  SVN_ERR(svn_stringbuf_from_aprfile(&value, f, scratch_pool));
+  *value_p = svn_string_create_from_buf(value, pool);
+  svn_pool_destroy(scratch_pool);
+  return SVN_NO_ERROR;
+}
+
 static void
 usage(apr_pool_t *pool, int exit_val)
 {
@@ -711,6 +748,7 @@ usage(apr_pool_t *pool, int exit_val)
     "  put SRC-FILE URL      add or modify file URL with contents copied from\n"
     "                        SRC-FILE (use \"-\" to read from standard input)\n"
     "  propset NAME VAL URL  set property NAME on URL to value VAL\n"
+    "  propsetf NAME VAL URL set property NAME on URL to value from file VAL\n"
     "  propdel NAME URL      delete property NAME from URL\n"
     "\nOptions:\n"
     "  -h, --help            display this text\n"
@@ -907,6 +945,8 @@ main(int argc, const char **argv)
         action->action = ACTION_PUT;
       else if (! strcmp(action_string, "propset"))
         action->action = ACTION_PROPSET;
+      else if (! strcmp(action_string, "propsetf"))
+        action->action = ACTION_PROPSETF;
       else if (! strcmp(action_string, "propdel"))
         action->action = ACTION_PROPDEL;
       else
@@ -952,9 +992,10 @@ main(int argc, const char **argv)
             insufficient(pool);
         }
 
-      /* For propset and propdel, a property name (and maybe value)
-         comes next. */
+      /* For propset, propsetf, and propdel, a property name (and
+         maybe a property value or file which contains one) comes next. */
       if ((action->action == ACTION_PROPSET)
+          || (action->action == ACTION_PROPSETF)
           || (action->action == ACTION_PROPDEL))
         {
           action->prop_name = APR_ARRAY_IDX(action_args, i, const char *);
@@ -965,11 +1006,28 @@ main(int argc, const char **argv)
             {
               action->prop_value = NULL;
             }
+          else if (action->action == ACTION_PROPSET)
+            {
+              action->prop_value =
+                svn_string_create(APR_ARRAY_IDX(action_args, i, 
+                                                const char *), pool);
+              if (++i == action_args->nelts)
+                insufficient(pool);
+            }
           else
             {
-              action->prop_value = APR_ARRAY_IDX(action_args, i, const char *);
+              const char *propval_file = 
+                svn_path_canonicalize(APR_ARRAY_IDX(action_args, i, 
+                                                    const char *), pool);
+
               if (++i == action_args->nelts)
                 insufficient(pool);
+
+              err = read_propvalue_file(&(action->prop_value), propval_file, pool);
+              if (err)
+                handle_error(err, pool);
+
+              action->action = ACTION_PROPSET;
             }
         }
 
@@ -978,6 +1036,7 @@ main(int argc, const char **argv)
           || action->action == ACTION_MKDIR
           || action->action == ACTION_PUT
           || action->action == ACTION_PROPSET
+          || action->action == ACTION_PROPSETF /* shouldn't see this one */
           || action->action == ACTION_PROPDEL)
         num_url_args = 1;
       else
@@ -1027,9 +1086,11 @@ main(int argc, const char **argv)
                      svn_string_create("committed using svnmucc", pool));
     }
   else
-    /* -F or -m specified; use that even if --with-revprop=svn:log. */
-    apr_hash_set(revprops, SVN_PROP_REVISION_LOG, APR_HASH_KEY_STRING,
-                 svn_string_create(message, pool));
+    {
+      /* -F or -m specified; use that even if --with-revprop=svn:log. */
+      apr_hash_set(revprops, SVN_PROP_REVISION_LOG, APR_HASH_KEY_STRING,
+                   svn_string_create(message, pool));
+    }
 
   if ((err = execute(actions, anchor, revprops, username, password,
                      config_dir, non_interactive, base_revision, pool)))

Modified: subversion/branches/py-tests-as-modules/tools/dev/contribulyze.py
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/tools/dev/contribulyze.py?rev=1031230&r1=1031229&r2=1031230&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/tools/dev/contribulyze.py (original)
+++ subversion/branches/py-tests-as-modules/tools/dev/contribulyze.py Thu Nov  4 20:48:21 2010
@@ -28,8 +28,9 @@
 #
 # Some Subversion project log messages include parseable data to help
 # track who's contributing what.  The exact syntax is described in
-# hacking.html#crediting, but here's an example, indented by three
-# spaces, i.e., the "Patch by:" starts at the beginning of a line:
+# http://subversion.apache.org/docs/community-guide/conventions.html#crediting,
+# but here's an example, indented by three spaces, i.e., the "Patch by:"
+# starts at the beginning of a line:
 #
 #    Patch by: David Anderson <da...@calixo.net>
 #              <ju...@erenkrantz.com>

Modified: subversion/branches/py-tests-as-modules/tools/dev/unix-build/Makefile.svn
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/tools/dev/unix-build/Makefile.svn?rev=1031230&r1=1031229&r2=1031230&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/tools/dev/unix-build/Makefile.svn (original)
+++ subversion/branches/py-tests-as-modules/tools/dev/unix-build/Makefile.svn Thu Nov  4 20:48:21 2010
@@ -913,9 +913,11 @@ httpd-conf:
 	echo "    SVNParentPath /tmp" >> $(HTTPD_CHECK_CONF)
 	echo "    Allow from all" >> $(HTTPD_CHECK_CONF)
 	echo "</Location>" >> $(HTTPD_CHECK_CONF)
+	echo 'RedirectMatch permanent ^/svn-test-work/repositories/REDIRECT-PERM-(.*)$$ /svn-test-work/repositories/$$1' >> $(HTTPD_CHECK_CONF)
+	echo 'RedirectMatch ^/svn-test-work/repositories/REDIRECT-TEMP-(.*)$$ /svn-test-work/repositories/$$1' >> $(HTTPD_CHECK_CONF)
 
 # We need this to make sure some targets below pick up the right libraries
-LD_LIBRARY_PATH=$(PREFIX)/apr/lib:$(PREFIX)/iconv/lib:$(PREFIX)/bdb/lib:$(PREFIX)/neon/lib:$(PREFIX)/serf/lib:$(PREFIX)/sqlite/lib:$(PREFIX)/svn-$(WC)/lib
+LD_LIBRARY_PATH=$(PREFIX)/apr/lib:$(PREFIX)/iconv/lib:$(PREFIX)/bdb/lib:$(PREFIX)/neon/lib:$(PREFIX)/serf/lib:$(PREFIX)/sqlite/lib:$(PREFIX)/cyrus-sasl/lib:$(PREFIX)/iconv/lib:$(PREFIX)/svn-$(WC)/lib
 
 .PHONY: start-svnserve stop-svnserve start-httpd stop-httpd
 
@@ -948,30 +950,47 @@ start-svnserve: $(SVN_OBJDIR)/.compiled
 stop-svnserve:
 	$(SVNSERVE_STOP_CMD)
 
+# run tests in parallel
+PARALLEL=PARALLEL=1 CLEANUP=1
+
 svn-check-neon: httpd-conf $(SVN_OBJDIR)/.compiled $(SVN_OBJDIR)/.bindings-compiled
 	$(HTTPD_START_CMD)
 	cd $(svn_builddir) && make check FS_TYPE=fsfs \
-	       BASE_URL=http://localhost:$(HTTPD_CHECK_PORT) HTTP_LIBRARY=neon
+	       BASE_URL=http://localhost:$(HTTPD_CHECK_PORT) HTTP_LIBRARY=neon \
+	       $(PARALLEL)
+	ln -f $(svn_builddir)/tests.log $(svn_builddir)/tests.log.ra_neon-fsfs
 	cd $(svn_builddir) && make check FS_TYPE=bdb \
-	       BASE_URL=http://localhost:$(HTTPD_CHECK_PORT) HTTP_LIBRARY=neon
+	       BASE_URL=http://localhost:$(HTTPD_CHECK_PORT) HTTP_LIBRARY=neon \
+	       $(PARALLEL)
+	ln -f $(svn_builddir)/tests.log $(svn_builddir)/tests.log.ra_neon-bdb
 	$(HTTPD_STOP_CMD)
 
 svn-check-serf: httpd-conf $(SVN_OBJDIR)/.compiled $(SVN_OBJDIR)/.bindings-compiled
 	$(HTTPD_START_CMD)
 	cd $(svn_builddir) && make check FS_TYPE=fsfs \
-	       BASE_URL=http://localhost:$(HTTPD_CHECK_PORT) HTTP_LIBRARY=serf
+	       BASE_URL=http://localhost:$(HTTPD_CHECK_PORT) HTTP_LIBRARY=serf \
+	       $(PARALLEL)
+	ln -f $(svn_builddir)/tests.log $(svn_builddir)/tests.log.ra_serf-fsfs
 	cd $(svn_builddir) && make check FS_TYPE=bdb \
-	       BASE_URL=http://localhost:$(HTTPD_CHECK_PORT) HTTP_LIBRARY=serf
+	       BASE_URL=http://localhost:$(HTTPD_CHECK_PORT) HTTP_LIBRARY=serf \
+	       $(PARALLEL)
+	ln -f $(svn_builddir)/tests.log $(svn_builddir)/tests.log.ra_serf-bdb
 	$(HTTPD_STOP_CMD)
 
 svn-check-local:
-	cd $(svn_builddir) && make check FS_TYPE=fsfs
-	cd $(svn_builddir) && make check FS_TYPE=bdb
+	cd $(svn_builddir) && make check FS_TYPE=fsfs $(PARALLEL)
+	ln -f $(svn_builddir)/tests.log $(svn_builddir)/tests.log.ra_local-fsfs
+	cd $(svn_builddir) && make check FS_TYPE=bdb $(PARALLEL)
+	ln -f $(svn_builddir)/tests.log $(svn_builddir)/tests.log.ra_local-bdb
 
 svn-check-svn:
 	$(SVNSERVE_START_CMD)
-	cd $(svn_builddir) && make check FS_TYPE=fsfs BASE_URL=svn://127.0.0.1
-	cd $(svn_builddir) && make check FS_TYPE=bdb BASE_URL=svn://127.0.0.1
+	cd $(svn_builddir) && make check FS_TYPE=fsfs BASE_URL=svn://127.0.0.1 \
+		 $(PARALLEL)
+	ln -f $(svn_builddir)/tests.log $(svn_builddir)/tests.log.ra_svn-fsfs
+	cd $(svn_builddir) && make check FS_TYPE=bdb BASE_URL=svn://127.0.0.1 \
+		 $(PARALLEL)
+	ln -f $(svn_builddir)/tests.log $(svn_builddir)/tests.log.ra_svn-bdb
 	$(SVNSERVE_STOP_CMD)
 
 .PHONY: svn-check-swig-pl svn-check-swig-py svn-check-swig-rb svn-check-javahl
@@ -1000,3 +1019,42 @@ svn-check-javahl:
 		make check-javahl
 
 svn-check: svn-check-local svn-check-svn svn-check-neon svn-check-serf svn-check-bindings
+
+.PHONY: sign-email
+sign-email:
+	@echo "Summary: +1 to release"
+	@echo ""
+	@echo "Tested: [bdb | fsfs] x [ra_local | ra_svn | ra_neon | ra_serf]"
+	@echo "        swig bindings"
+ifeq ($(ENABLE_JAVA_BINDINGS),yes)
+	@echo "	       javahl bindings"
+endif
+	@echo ""
+	@echo "Test results: All passed."
+	@echo ""
+	@echo "Platform: `uname -r -s -m`"
+	@echo ""
+	@echo "Dependencies:"
+	@echo "bdb:        $(BDB_VER)"
+ifeq ($(USE_APR_ICONV),yes)
+	@echo "apr-iconv:  $(APR_ICONV_VER)"
+else
+	@echo "GNU-iconv:  $(GNU_ICONV_VER)"
+endif
+	@echo "apr:        $(APR_VER)"
+	@echo "apr-util:   $(APR_UTIL_VER)"
+	@echo "httpd:      $(HTTPD_VER)"
+	@echo "neon:       $(NEON_VER)"
+	@echo "serf:       $(SERF_VER)"
+	@echo "cyrus-sasl: $(CYRUS_SASL_VER)"
+	@echo "sqlite:     $(SQLITE_VER)"
+	@echo "openssl:    `openssl version | cut -d' ' -f2`"
+	@echo "swig:       `swig -version | grep Version | cut -d' ' -f3`"
+	@echo "python:     `python --version 2>&1 | cut -d' ' -f2`"
+	@echo "perl:       `perl -version | grep ^This | cut -d' ' -f4 | sed -e 's/^v//'`"
+	@echo "ruby:       `ruby --version | cut -d' ' -f2`"
+ifeq ($(ENABLE_JAVA_BINDINGS),yes)
+	@echo "java:       `java -version 2>&1 | grep version | cut -d' ' -f3  | sed -e 's/\"//g'`"
+endif
+	@echo ""
+	@echo "Signatures:"