You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2011/10/11 21:52:46 UTC

svn commit: r1182053 [5/30] - in /subversion/branches/svn_mutex: ./ build/ build/ac-macros/ build/generator/ build/generator/swig/ build/generator/templates/ contrib/client-side/ contrib/hook-scripts/enforcer/ contrib/server-side/ notes/ notes/merge-tr...

Modified: subversion/branches/svn_mutex/subversion/bindings/swig/perl/native/t/5delta.t
URL: http://svn.apache.org/viewvc/subversion/branches/svn_mutex/subversion/bindings/swig/perl/native/t/5delta.t?rev=1182053&r1=1182052&r2=1182053&view=diff
==============================================================================
--- subversion/branches/svn_mutex/subversion/bindings/swig/perl/native/t/5delta.t (original)
+++ subversion/branches/svn_mutex/subversion/bindings/swig/perl/native/t/5delta.t Tue Oct 11 19:52:34 2011
@@ -31,14 +31,14 @@ open my $source, '<', \$srctext;
 open my $target, '<', \$tgttext;
 open my $aresult, '>', \$result;
 
-my $txstream = SVN::TxDelta::new ($source, $target);
+my $txstream = SVN::TxDelta::new($source, $target);
 
-isa_ok ($txstream, '_p_svn_txdelta_stream_t');
+isa_ok($txstream, '_p_svn_txdelta_stream_t');
 open my $asource, '<', \$srctext;
-my ($md5, @handle) = SVN::TxDelta::apply ($asource, $aresult, undef);
+my ($md5, @handle) = SVN::TxDelta::apply($asource, $aresult, undef);
 
-SVN::TxDelta::send_txstream ($txstream, @handle);
+SVN::TxDelta::send_txstream($txstream, @handle);
 
-is ($result, $tgttext, 'delta self test');
+is($result, $tgttext, 'delta self test');
 
 is("$md5", 'a22b3dadcbddac48d2f1eae3ec5fb86a', 'md5 matched');

Modified: subversion/branches/svn_mutex/subversion/bindings/swig/perl/native/t/7editor.t
URL: http://svn.apache.org/viewvc/subversion/branches/svn_mutex/subversion/bindings/swig/perl/native/t/7editor.t?rev=1182053&r1=1182052&r2=1182053&view=diff
==============================================================================
--- subversion/branches/svn_mutex/subversion/bindings/swig/perl/native/t/7editor.t (original)
+++ subversion/branches/svn_mutex/subversion/bindings/swig/perl/native/t/7editor.t Tue Oct 11 19:52:34 2011
@@ -48,21 +48,21 @@ sub committed {
 
 my $editor = SVN::Delta::Editor->
     new(SVN::Repos::get_commit_editor($repos, "file://$repospath",
-				      '/', 'root', 'FOO', \&committed));
+                                      '/', 'root', 'FOO', \&committed));
 my $rootbaton = $editor->open_root(0);
-my $dirbaton = $editor->add_directory ('trunk', $rootbaton, undef, 0);
-my $fbaton = $editor->add_file ('trunk/filea', $dirbaton, undef, -1);
-my $ret = $editor->apply_textdelta ($fbaton, undef);
+my $dirbaton = $editor->add_directory('trunk', $rootbaton, undef, 0);
+my $fbaton = $editor->add_file('trunk/filea', $dirbaton, undef, -1);
+my $ret = $editor->apply_textdelta($fbaton, undef);
 SVN::TxDelta::send_string("FILEA CONTENT", @$ret);
 $editor->close_edit();
 eval {
 my $pool = SVN::Pool->new_default;
-SVN::Repos::dir_delta ($fs->revision_root (0), '/', '',
-		       $fs->revision_root (1), '/',
-		       MyEditor->new (crap => bless {}, 'something'),
-		       undef, 1, 1, 0, 0);
+SVN::Repos::dir_delta($fs->revision_root(0), '/', '',
+                      $fs->revision_root(1), '/',
+                      MyEditor->new(crap => bless {}, 'something'),
+                      undef, 1, 1, 0, 0);
 };
-ok ($main::something_destroyed, 'editor');
+ok($main::something_destroyed, 'editor');
 
 package something;
 

Modified: subversion/branches/svn_mutex/subversion/bindings/swig/perl/native/t/8lock.t
URL: http://svn.apache.org/viewvc/subversion/branches/svn_mutex/subversion/bindings/swig/perl/native/t/8lock.t?rev=1182053&r1=1182052&r2=1182053&view=diff
==============================================================================
--- subversion/branches/svn_mutex/subversion/bindings/swig/perl/native/t/8lock.t (original)
+++ subversion/branches/svn_mutex/subversion/bindings/swig/perl/native/t/8lock.t Tue Oct 11 19:52:34 2011
@@ -43,7 +43,7 @@ ok($repos = SVN::Repos::create("$repospa
 my $fs = $repos->fs;
 
 my $acc = SVN::Fs::create_access('foo');
-is ($acc->get_username, 'foo');
+is($acc->get_username, 'foo');
 $fs->set_access($acc);
 
 my $txn = $fs->begin_txn($fs->youngest_rev);
@@ -54,18 +54,20 @@ print $stream 'orz';
 }
 $txn->commit;
 
-$fs->lock ('/testfile', 'hate software', 'we hate software', 0, 0, $fs->youngest_rev, 0);
+my $token = "opaquelocktoken:notauuid-$$";
+
+$fs->lock('/testfile', $token, 'we hate software', 0, 0, $fs->youngest_rev, 0);
 
 ok(my $lock = $fs->get_lock('/testfile'));
-is ($lock->token, 'hate software');
-is ($lock->owner, 'foo');
+is($lock->token, $token);
+is($lock->owner, 'foo');
 
 $acc = SVN::Fs::create_access('fnord');
-is ($acc->get_username, 'fnord');
+is($acc->get_username, 'fnord');
 $fs->set_access($acc);
 
 eval {
-$fs->lock ('/testfile', 'hate software', 'we hate software', 0, 0, $fs->youngest_rev, 0);
+$fs->lock('/testfile', $token, 'we hate software', 0, 0, $fs->youngest_rev, 0);
 };
 
 like($@, qr/already locked/);

Modified: subversion/branches/svn_mutex/subversion/bindings/swig/python/svn/repos.py
URL: http://svn.apache.org/viewvc/subversion/branches/svn_mutex/subversion/bindings/swig/python/svn/repos.py?rev=1182053&r1=1182052&r2=1182053&view=diff
==============================================================================
--- subversion/branches/svn_mutex/subversion/bindings/swig/python/svn/repos.py (original)
+++ subversion/branches/svn_mutex/subversion/bindings/swig/python/svn/repos.py Tue Oct 11 19:52:34 2011
@@ -72,12 +72,28 @@ class ChangedPath:
 
 
 class ChangeCollector(_svndelta.Editor):
-  """Available Since: 1.2.0
+  """An editor that, when driven, walks a revision or a transaction and
+  incrementally invokes a callback with ChangedPath instances corresponding to
+  paths changed in that revision.
+
+  Available Since: 1.2.0
   """
 
   # BATON FORMAT: [path, base_path, base_rev]
 
   def __init__(self, fs_ptr, root, pool=None, notify_cb=None):
+    """Construct a walker over the svn_fs_root_t ROOT, which must
+    be in the svn_fs_t FS_PTR.  Invoke NOTIFY_CB with a single argument
+    of type ChangedPath for each change under ROOT.
+
+    At this time, two ChangedPath objects will be passed for a path that had
+    been replaced in the revision/transaction.  This may change in the future.
+  
+    ### Can't we deduce FS_PTR from ROOT?
+
+    ### POOL is unused
+    """
+
     self.fs_ptr = fs_ptr
     self.changes = { } # path -> ChangedPathEntry()
     self.roots = { } # revision -> svn_svnfs_root_t
@@ -136,9 +152,9 @@ class ChangeCollector(_svndelta.Editor):
     self.changes[path] = ChangedPath(item_type,
                                      False,
                                      False,
-                                     base_path,
+                                     base_path,       # base_path
                                      parent_baton[2], # base_rev
-                                     None,            # (new) path
+                                     path,            # path
                                      False,           # added
                                      CHANGE_ACTION_DELETE,
                                      )

Modified: subversion/branches/svn_mutex/subversion/bindings/swig/python/tests/trac/versioncontrol/svn_fs.py
URL: http://svn.apache.org/viewvc/subversion/branches/svn_mutex/subversion/bindings/swig/python/tests/trac/versioncontrol/svn_fs.py?rev=1182053&r1=1182052&r2=1182053&view=diff
==============================================================================
--- subversion/branches/svn_mutex/subversion/bindings/swig/python/tests/trac/versioncontrol/svn_fs.py (original)
+++ subversion/branches/svn_mutex/subversion/bindings/swig/python/tests/trac/versioncontrol/svn_fs.py Tue Oct 11 19:52:34 2011
@@ -407,7 +407,7 @@ class SubversionChangeset(Changeset):
                 else:
                     base_path = None
             action = ''
-            if not change.path:
+            if change.action == repos.CHANGE_ACTION_DELETE:
                 action = Changeset.DELETE
                 deletions[change.base_path] = idx
             elif change.added:

Modified: subversion/branches/svn_mutex/subversion/bindings/swig/ruby/test/test_client.rb
URL: http://svn.apache.org/viewvc/subversion/branches/svn_mutex/subversion/bindings/swig/ruby/test/test_client.rb?rev=1182053&r1=1182052&r2=1182053&view=diff
==============================================================================
--- subversion/branches/svn_mutex/subversion/bindings/swig/ruby/test/test_client.rb (original)
+++ subversion/branches/svn_mutex/subversion/bindings/swig/ruby/test/test_client.rb Tue Oct 11 19:52:34 2011
@@ -1287,7 +1287,6 @@ class SvnClientTest < Test::Unit::TestCa
         ctx.mv(path1, path2)
       end
       ctx.revert([path1, path2])
-      FileUtils.rm(path2)
 
       File.open(path1, "w") {|f| f.print(src2)}
       assert_nothing_raised do

Modified: subversion/branches/svn_mutex/subversion/bindings/swig/ruby/test/util.rb
URL: http://svn.apache.org/viewvc/subversion/branches/svn_mutex/subversion/bindings/swig/ruby/test/util.rb?rev=1182053&r1=1182052&r2=1182053&view=diff
==============================================================================
--- subversion/branches/svn_mutex/subversion/bindings/swig/ruby/test/util.rb (original)
+++ subversion/branches/svn_mutex/subversion/bindings/swig/ruby/test/util.rb Tue Oct 11 19:52:34 2011
@@ -262,7 +262,7 @@ realm = #{@realm}
             "svn://#{@svnserve_host}:#{@svnserve_port}#{@full_repos_path}"
           # Avoid a race by waiting a short time for svnserve to start up.
           # Without this, tests can fail with "Connection refused" errors.
-          sleep 0.1
+          sleep 1
           break
         end
       end

Propchange: subversion/branches/svn_mutex/subversion/include/private/svn_adler32.h
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Oct 11 19:52:34 2011
@@ -31,6 +31,7 @@
 /subversion/branches/py-tests-as-modules/subversion/libsvn_diff/diff.h:956579-1033052
 /subversion/branches/ra_serf-digest-authn/subversion/libsvn_diff/diff.h:875693-876404
 /subversion/branches/reintegrate-improvements/subversion/libsvn_diff/diff.h:873853-874164
+/subversion/branches/revprop-packing/subversion/include/private/svn_adler32.h:1143907,1143971,1144017,1144568,1146145
 /subversion/branches/subtree-mergeinfo/subversion/libsvn_diff/diff.h:876734-878766
 /subversion/branches/svn-mergeinfo-enhancements/subversion/libsvn_diff/diff.h:870119-870195,870197-870288
 /subversion/branches/svn-patch-improvements/subversion/libsvn_diff/diff.h:918519-934609
@@ -43,4 +44,4 @@
 /subversion/branches/tc_url_rev/subversion/libsvn_diff/diff.h:874351-874483
 /subversion/branches/tree-conflicts/subversion/libsvn_diff/diff.h:868291-873154
 /subversion/branches/tree-conflicts-notify/subversion/libsvn_diff/diff.h:873926-874008
-/subversion/trunk/subversion/include/private/svn_adler32.h:1141684-1142212
+/subversion/trunk/subversion/include/private/svn_adler32.h:1141684-1142212,1142216-1181870

Modified: subversion/branches/svn_mutex/subversion/include/private/svn_auth_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/svn_mutex/subversion/include/private/svn_auth_private.h?rev=1182053&r1=1182052&r2=1182053&view=diff
==============================================================================
--- subversion/branches/svn_mutex/subversion/include/private/svn_auth_private.h (original)
+++ subversion/branches/svn_mutex/subversion/include/private/svn_auth_private.h Tue Oct 11 19:52:34 2011
@@ -46,6 +46,7 @@ extern "C" {
 #define SVN_AUTH__KEYCHAIN_PASSWORD_TYPE           "keychain"
 #define SVN_AUTH__KWALLET_PASSWORD_TYPE            "kwallet"
 #define SVN_AUTH__GNOME_KEYRING_PASSWORD_TYPE      "gnome-keyring"
+#define SVN_AUTH__GPG_AGENT_PASSWORD_TYPE          "gpg-agent"
 
 /* A function that stores in *PASSWORD (potentially after decrypting it)
    the user's password.  It might be obtained directly from CREDS, or

Modified: subversion/branches/svn_mutex/subversion/include/private/svn_client_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/svn_mutex/subversion/include/private/svn_client_private.h?rev=1182053&r1=1182052&r2=1182053&view=diff
==============================================================================
--- subversion/branches/svn_mutex/subversion/include/private/svn_client_private.h (original)
+++ subversion/branches/svn_mutex/subversion/include/private/svn_client_private.h Tue Oct 11 19:52:34 2011
@@ -48,7 +48,7 @@ svn_client__assert_homogeneous_target_ty
 
 /* Create a svn_client_status_t structure *CST for LOCAL_ABSPATH, shallow
  * copying data from *STATUS wherever possible and retrieving the other values
- * where needed. Peform temporary allocations in SCRATCH_POOL and allocate the
+ * where needed. Perform temporary allocations in SCRATCH_POOL and allocate the
  * result in RESULT_POOL
  */
 svn_error_t *

Modified: subversion/branches/svn_mutex/subversion/include/private/svn_dav_protocol.h
URL: http://svn.apache.org/viewvc/subversion/branches/svn_mutex/subversion/include/private/svn_dav_protocol.h?rev=1182053&r1=1182052&r2=1182053&view=diff
==============================================================================
--- subversion/branches/svn_mutex/subversion/include/private/svn_dav_protocol.h (original)
+++ subversion/branches/svn_mutex/subversion/include/private/svn_dav_protocol.h Tue Oct 11 19:52:34 2011
@@ -43,7 +43,6 @@ extern "C" {
 #define SVN_DAV__PATH "path"
 #define SVN_DAV__INHERIT "inherit"
 #define SVN_DAV__REVISION "revision"
-#define SVN_DAV__VALIDATE_INHERITED "validate-inherited"
 #define SVN_DAV__INCLUDE_DESCENDANTS "include-descendants"
 #define SVN_DAV__VERSION_NAME "version-name"
 

Modified: subversion/branches/svn_mutex/subversion/include/private/svn_dep_compat.h
URL: http://svn.apache.org/viewvc/subversion/branches/svn_mutex/subversion/include/private/svn_dep_compat.h?rev=1182053&r1=1182052&r2=1182053&view=diff
==============================================================================
--- subversion/branches/svn_mutex/subversion/include/private/svn_dep_compat.h (original)
+++ subversion/branches/svn_mutex/subversion/include/private/svn_dep_compat.h Tue Oct 11 19:52:34 2011
@@ -62,6 +62,11 @@ extern "C" {
 #define apr_array_clear(arr)         (arr)->nelts = 0
 #endif
 
+#if !APR_VERSION_AT_LEAST(1,0,0)
+#define APR_UINT64_C(val) UINT64_C(val)
+#define APR_FPROT_OS_DEFAULT APR_OS_DEFAULT
+#endif
+
 #if !APR_VERSION_AT_LEAST(1,3,0)
 #define APR_UINT16_MAX  0xFFFFU
 #define APR_INT16_MAX   0x7FFF

Modified: subversion/branches/svn_mutex/subversion/include/private/svn_sqlite.h
URL: http://svn.apache.org/viewvc/subversion/branches/svn_mutex/subversion/include/private/svn_sqlite.h?rev=1182053&r1=1182052&r2=1182053&view=diff
==============================================================================
--- subversion/branches/svn_mutex/subversion/include/private/svn_sqlite.h (original)
+++ subversion/branches/svn_mutex/subversion/include/private/svn_sqlite.h Tue Oct 11 19:52:34 2011
@@ -85,13 +85,6 @@ svn_sqlite__insert(apr_int64_t *row_id, 
 svn_error_t *
 svn_sqlite__update(int *affected_rows, svn_sqlite__stmt_t *stmt);
 
-/* Return in *VERSION the version of the schema for the database as PATH.
-   Use SCRATCH_POOL for temporary allocations. */
-svn_error_t *
-svn_sqlite__get_schema_version(int *version,
-                               const char *path,
-                               apr_pool_t *scratch_pool);
-
 /* Return in *VERSION the version of the schema in DB. Use SCRATCH_POOL
    for temporary allocations.  */
 svn_error_t *
@@ -99,12 +92,6 @@ svn_sqlite__read_schema_version(int *ver
                                 svn_sqlite__db_t *db,
                                 apr_pool_t *scratch_pool);
 
-/* Set DB's schema version to VERSION. Use SCRATCH_POOL for all temporary
-   allocations.  */
-svn_error_t *
-svn_sqlite__set_schema_version(svn_sqlite__db_t *db,
-                               int version,
-                               apr_pool_t *scratch_pool);
 
 
 /* Open a connection in *DB to the database at PATH. Validate the schema,
@@ -373,13 +360,12 @@ svn_sqlite__with_immediate_transaction(s
 
 /* Helper function to handle several SQLite operations inside a shared lock.
    This callback is similar to svn_sqlite__with_transaction(), but can be
-   nested (even with a transaction) and changes in the callback are always
-   committed when this function returns.
+   nested (even with a transaction).
 
-   For SQLite 3.6.8 and later using this function as a wrapper around a group
-   of operations can give a *huge* performance boost as the shared-read lock
-   will be shared over multiple statements, instead of being reobtained
-   everytime, which requires disk and/or network io.
+   Using this function as a wrapper around a group of operations can give a
+   *huge* performance boost as the shared-read lock will be shared over
+   multiple statements, instead of being reobtained every time, which may
+   require disk and/or network io, depending on SQLite's locking strategy.
 
    SCRATCH_POOL will be passed to the callback (NULL is valid).
 

Modified: subversion/branches/svn_mutex/subversion/include/private/svn_string_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/svn_mutex/subversion/include/private/svn_string_private.h?rev=1182053&r1=1182052&r2=1182053&view=diff
==============================================================================
--- subversion/branches/svn_mutex/subversion/include/private/svn_string_private.h (original)
+++ subversion/branches/svn_mutex/subversion/include/private/svn_string_private.h Tue Oct 11 19:52:34 2011
@@ -53,6 +53,11 @@ extern "C" {
  */
 svn_string_t *
 svn_stringbuf__morph_into_string(svn_stringbuf_t *strbuf);
+
+/** Like apr_strtoff but provided here for backward compatibility
+ *  with APR 0.9 */
+apr_status_t
+svn__strtoff(apr_off_t *offset, const char *buf, char **end, int base);
 /** @} */
 
 /** @} */

Propchange: subversion/branches/svn_mutex/subversion/include/private/svn_string_private.h
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Oct 11 19:52:34 2011
@@ -39,6 +39,7 @@
 /subversion/branches/py-tests-as-modules/subversion/include/svn_string.h:956579-1033052
 /subversion/branches/ra_serf-digest-authn/subversion/include/svn_string.h:875693-876404
 /subversion/branches/reintegrate-improvements/subversion/include/svn_string.h:873853-874164
+/subversion/branches/revprop-packing/subversion/include/private/svn_string_private.h:1143907,1143971,1144017,1144568,1146145
 /subversion/branches/subtree-mergeinfo/subversion/include/svn_string.h:876734-878766
 /subversion/branches/svn-mergeinfo-enhancements/subversion/include/svn_string.h:870119-870195,870197-870288
 /subversion/branches/svn-patch-improvements/subversion/include/svn_string.h:918519-934609
@@ -52,4 +53,4 @@
 /subversion/branches/tree-conflicts/subversion/include/svn_string.h:868291-873154
 /subversion/branches/tree-conflicts-notify/subversion/include/svn_string.h:873926-874008
 /subversion/branches/uris-as-urls/subversion/include/svn_string.h:1060426-1064427
-/subversion/trunk/subversion/include/private/svn_string_private.h:1141684-1142212
+/subversion/trunk/subversion/include/private/svn_string_private.h:1141684-1142212,1142216-1181870

Propchange: subversion/branches/svn_mutex/subversion/include/private/svn_temp_serializer.h
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Oct 11 19:52:34 2011
@@ -1 +1,2 @@
-/subversion/trunk/subversion/include/private/svn_temp_serializer.h:1067687-1072301,1141684-1142212
+/subversion/branches/revprop-packing/subversion/include/private/svn_temp_serializer.h:1143907,1143971,1144017,1144568,1146145
+/subversion/trunk/subversion/include/private/svn_temp_serializer.h:1067687-1072301,1141684-1142212,1142216-1181870

Modified: subversion/branches/svn_mutex/subversion/include/private/svn_wc_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/svn_mutex/subversion/include/private/svn_wc_private.h?rev=1182053&r1=1182052&r2=1182053&view=diff
==============================================================================
--- subversion/branches/svn_mutex/subversion/include/private/svn_wc_private.h (original)
+++ subversion/branches/svn_mutex/subversion/include/private/svn_wc_private.h Tue Oct 11 19:52:34 2011
@@ -105,9 +105,18 @@ svn_wc__crawl_file_external(svn_wc_conte
    If IGNORE_ENOENT, then set *external_kind to svn_node_none, when
    LOCAL_ABSPATH is not an external instead of returning an error.
 
-   ### While we are not at the SVN_WC__HAS_EXTERNALS_STORE format, roots
-   ### of working copies will be identified as directory externals. The
-   ### recorded information will be NULL for directory externals.
+   Here is an overview of how DEFINING_REVISION and
+   DEFINING_OPERATIONAL_REVISION would be set for which kinds of externals
+   definitions:
+
+     svn:externals line   DEFINING_REV.       DEFINING_OP._REV.
+
+         ^/foo@2 bar       2                   2
+     -r1 ^/foo@2 bar       1                   2
+     -r1 ^/foo   bar       1                  SVN_INVALID_REVNUM
+         ^/foo   bar      SVN_INVALID_REVNUM  SVN_INVALID_REVNUM
+         ^/foo@HEAD bar   SVN_INVALID_REVNUM  SVN_INVALID_REVNUM
+     -rHEAD ^/foo bar     -- not a valid externals definition --
 */
 svn_error_t *
 svn_wc__read_external_info(svn_node_kind_t *external_kind,
@@ -310,7 +319,7 @@ svn_wc__status2_from_3(svn_wc_status2_t 
  * absolute paths.
  *
  * Include children that are scheduled for deletion.  Iff @a show_hidden
- * is true, also include children that are 'excluded' or 'absent' or
+ * is true, also include children that are 'excluded' or 'server-excluded' or
  * 'not-present'.
  *
  * Return every path that refers to a child of the working node at
@@ -330,10 +339,10 @@ svn_wc__node_get_children_of_working_nod
                                           apr_pool_t *scratch_pool);
 
 /**
- * Like svn_wc__node_get_children2(), except also include any path that was
- * a child of a deleted directory that existed at @a dir_abspath, even if
- * that directory is now scheduled to be replaced by the working node at
- * @a dir_abspath.
+ * Like svn_wc__node_get_children_of_working_node(), except also include any
+ * path that was a child of a deleted directory that existed at
+ * @a dir_abspath, even if that directory is now scheduled to be replaced by
+ * the working node at @a dir_abspath.
  */
 svn_error_t *
 svn_wc__node_get_children(const apr_array_header_t **children,
@@ -466,6 +475,22 @@ svn_wc__node_is_status_deleted(svn_boole
                                apr_pool_t *scratch_pool);
 
 /**
+ * Set @a *deleted_ancestor_abspath to the root of the delete operation
+ * that deleted @a local_abspath. If @a local_abspath itself was deleted
+ * and has no deleted ancestor, @a *deleted_ancestor_abspath will equal
+ * @a local_abspath. If @a local_abspath was not deleted,
+ * set @a *deleted_ancestor_abspath to @c NULL.
+ * @a *deleted_ancestor_abspath is allocated in @a result_pool.
+ * Use @a scratch_pool for all temporary allocations.
+ */ 
+svn_error_t *
+svn_wc__node_get_deleted_ancestor(const char **deleted_ancestor_abspath,
+                                  svn_wc_context_t *wc_ctx,
+                                  const char *local_abspath,
+                                  apr_pool_t *result_pool,
+                                  apr_pool_t *scratch_pool);
+
+/**
  * Set @a *is_server_excluded to whether @a local_abspath has been
  * excluded by the server, using @a wc_ctx.  If @a local_abspath is not
  * in the working copy, return @c SVN_ERR_WC_PATH_NOT_FOUND.
@@ -875,18 +900,20 @@ svn_wc__has_switched_subtrees(svn_boolea
                               const char *trail_url,
                               apr_pool_t *scratch_pool);
 
-/* Set @a *absent_subtrees to a hash mapping <tt>const char *</tt> local
- * absolute paths to <tt>const char *</tt> local absolute paths for every
- * path at or under @a local_abspath in @a wc_ctx which are absent (excluded
- * by authz).  If no absent paths are found then @a *absent_subtrees is set
- * to @c NULL.  Allocate the hash and all items therein from @a result_pool.
+/* Set @a *server_excluded_subtrees to a hash mapping <tt>const char *</tt>
+ * local * absolute paths to <tt>const char *</tt> local absolute paths for
+ * every path at or under @a local_abspath in @a wc_ctx which are excluded
+ * by the server (e.g. because of authz).
+ * If no server-excluded paths are found then @a *server_excluded_subtrees
+ * is set to @c NULL.
+ * Allocate the hash and all items therein from @a result_pool.
  */
 svn_error_t *
-svn_wc__get_absent_subtrees(apr_hash_t **absent_subtrees,
-                            svn_wc_context_t *wc_ctx,
-                            const char *local_abspath,
-                            apr_pool_t *result_pool,
-                            apr_pool_t *scratch_pool);
+svn_wc__get_server_excluded_subtrees(apr_hash_t **server_excluded_subtrees,
+                                     svn_wc_context_t *wc_ctx,
+                                     const char *local_abspath,
+                                     apr_pool_t *result_pool,
+                                     apr_pool_t *scratch_pool);
 
 /* Indicate in @a *is_modified whether the working copy has local
  * modifications, using context @a wc_ctx.
@@ -978,7 +1005,7 @@ svn_wc__get_not_present_descendants(cons
  * direct parent does not exist or is deleted return _state_obstructed. When
  * a node doesn't exist but should exist return svn_wc_notify_state_missing.
  *
- * A node is also obstructed if it is marked excluded or absent or when
+ * A node is also obstructed if it is marked excluded or server-excluded or when
  * an unversioned file or directory exists. And if NO_WCROOT_CHECK is FALSE,
  * the root of a working copy is also obstructed; this to allow detecting
  * obstructing working copies.
@@ -992,9 +1019,6 @@ svn_wc__get_not_present_descendants(cons
  * If DELETED is not NULL, set *DELETED to TRUE if the node is marked as
  * deleted in the working copy.
  *
- * If CONFLICTED is not NULL, set *CONFLICTED to TRUE if the node is somehow
- * conflicted.
- *
  * All output arguments except OBSTRUCTION_STATE can be NULL to ommit the
  * result.
  *
@@ -1005,7 +1029,6 @@ svn_wc__check_for_obstructions(svn_wc_no
                                svn_node_kind_t *kind,
                                svn_boolean_t *added,
                                svn_boolean_t *deleted,
-                               svn_boolean_t *conflicted,
                                svn_wc_context_t *wc_ctx,
                                const char *local_abspath,
                                svn_boolean_t no_wcroot_check,
@@ -1077,18 +1100,119 @@ typedef svn_error_t *(*svn_wc__info_rece
 
 /* Walk the children of LOCAL_ABSPATH and push svn_wc__info2_t's through
    RECEIVER/RECEIVER_BATON.  Honor DEPTH while crawling children, and
-   filter the pushed items against CHANGELISTS.  */
+   filter the pushed items against CHANGELISTS.
+
+   If FETCH_EXCLUDED is TRUE, also fetch excluded nodes.
+   If FETCH_ACTUAL_ONLY is TRUE, also fetch actual-only nodes. */
 svn_error_t *
 svn_wc__get_info(svn_wc_context_t *wc_ctx,
                  const char *local_abspath,
                  svn_depth_t depth,
+                 svn_boolean_t fetch_excluded,
+                 svn_boolean_t fetch_actual_only,
+                 const apr_array_header_t *changelists,
                  svn_wc__info_receiver2_t receiver,
                  void *receiver_baton,
-                 const apr_array_header_t *changelists,
                  svn_cancel_func_t cancel_func,
                  void *cancel_baton,
                  apr_pool_t *scratch_pool);
 
+/* Internal version of svn_wc_delete4(). It has one additional parameter,
+ * MOVED_TO_ABSPATH. If not NULL, this parameter indicates that the
+ * delete operation is the delete-half of a move. */
+svn_error_t *
+svn_wc__delete_internal(svn_wc_context_t *wc_ctx,
+                        const char *local_abspath,
+                        svn_boolean_t keep_local,
+                        svn_boolean_t delete_unversioned_target,
+                        const char *moved_to_abspath,
+                        svn_cancel_func_t cancel_func,
+                        void *cancel_baton,
+                        svn_wc_notify_func2_t notify_func,
+                        void *notify_baton,
+                        apr_pool_t *scratch_pool);
+
+/* If the node at LOCAL_ABSPATH was moved away set *MOVED_TO_ABSPATH to
+ * the absolute path of the copied move-target node, and *COPY_OP_ROOT_ABSPATH
+ * to the absolute path of the root node of the copy operation.
+ *
+ * If the node was not moved, set *MOVED_TO_ABSPATH and *COPY_OP_ROOT_ABSPATH
+ * to NULL.
+ *
+ * Either MOVED_TO_ABSPATH or OP_ROOT_ABSPATH may be NULL to indicate
+ * that the caller is not interested in the result.
+ */
+svn_error_t *
+svn_wc__node_was_moved_away(const char **moved_to_abspath,
+                            const char **copy_op_root_abspath,
+                            svn_wc_context_t *wc_ctx,
+                            const char *local_abspath,
+                            apr_pool_t *result_pool,
+                            apr_pool_t *scratch_pool);
+
+/* If the node at LOCAL_ABSPATH was moved here set *MOVED_FROM_ABSPATH to
+ * the absolute path of the deleted move-source node, and set
+ * *DELETE_OP_ROOT_ABSPATH to the absolute path of the root node of the
+ * delete operation.
+ *
+ * If the node was not moved, set *MOVED_FROM_ABSPATH and
+ * *DELETE_OP_ROOT_ABSPATH to NULL.
+ *
+ * Either MOVED_FROM_ABSPATH or OP_ROOT_ABSPATH may be NULL to indicate
+ * that the caller is not interested in the result.
+ */
+svn_error_t *
+svn_wc__node_was_moved_here(const char **moved_from_abspath,
+                            const char **delete_op_root_abspath,
+                            svn_wc_context_t *wc_ctx,
+                            const char *local_abspath,
+                            apr_pool_t *result_pool,
+                            apr_pool_t *scratch_pool);
+
+/* During an upgrade to wc-ng, supply known details about an existing
+ * external.  The working copy will suck in and store the information supplied
+ * about the existing external at @a local_abspath. */
+svn_error_t *
+svn_wc__upgrade_add_external_info(svn_wc_context_t *wc_ctx,
+                                  const char *local_abspath,
+                                  svn_node_kind_t kind,
+                                  const char *def_local_abspath,
+                                  const char *repos_relpath,
+                                  const char *repos_root_url,
+                                  const char *repos_uuid,
+                                  svn_revnum_t def_peg_revision,
+                                  svn_revnum_t def_revision,
+                                  apr_pool_t *scratch_pool);
+
+/* If the URL for @a item is relative, then using the repository root
+   URL @a repos_root_url and the parent directory URL @parent_dir_url,
+   resolve it into an absolute URL and save it in @a *resolved_url.
+
+   Regardless if the URL is absolute or not, if there are no errors,
+   the URL returned in @a *resolved_url will be canonicalized.
+
+   The following relative URL formats are supported:
+
+     ../    relative to the parent directory of the external
+     ^/     relative to the repository root
+     //     relative to the scheme
+     /      relative to the server's hostname
+
+   The ../ and ^/ relative URLs may use .. to remove path elements up
+   to the server root.
+
+   The external URL should not be canonicalized before calling this function,
+   as otherwise the scheme relative URL '//host/some/path' would have been
+   canonicalized to '/host/some/path' and we would not be able to match on
+   the leading '//'. */
+svn_error_t *
+svn_wc__resolve_relative_external_url(const char **resolved_url,
+                                      const svn_wc_external_item2_t *item,
+                                      const char *repos_root_url,
+                                      const char *parent_dir_url,
+                                      apr_pool_t *result_pool,
+                                      apr_pool_t *scratch_pool);
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */

Modified: subversion/branches/svn_mutex/subversion/include/svn_auth.h
URL: http://svn.apache.org/viewvc/subversion/branches/svn_mutex/subversion/include/svn_auth.h?rev=1182053&r1=1182052&r2=1182053&view=diff
==============================================================================
--- subversion/branches/svn_mutex/subversion/include/svn_auth.h (original)
+++ subversion/branches/svn_mutex/subversion/include/svn_auth.h Tue Oct 11 19:52:34 2011
@@ -785,8 +785,8 @@ svn_auth_get_simple_provider(svn_auth_pr
  * svn_auth_provider_object_t, or return @c NULL if the provider is not
  * available for the requested platform or the requested provider is unknown.
  *
- * Valid @a provider_name values are: "gnome_keyring", "keychain", "kwallet"
- * and "windows".
+ * Valid @a provider_name values are: "gnome_keyring", "keychain", "kwallet",
+ * "gpg_agent", and "windows".
  *
  * Valid @a provider_type values are: "simple", "ssl_client_cert_pw" and
  * "ssl_server_trust".
@@ -820,7 +820,8 @@ svn_auth_get_platform_specific_provider(
  *   1. gnome-keyring
  *   2. kwallet
  *   3. keychain
- *   4. windows-cryptoapi
+ *   4. gpg-agent
+ *   5. windows-cryptoapi
  *
  * @since New in 1.6.
  */
@@ -1071,6 +1072,28 @@ svn_auth_get_kwallet_ssl_client_cert_pw_
   apr_pool_t *pool);
 #endif /* (!DARWIN && !WIN32) || DOXYGEN */
 
+#if !defined(WIN32) || defined(DOXYGEN)
+/**
+ * Set @a *provider to an authentication provider of type @c
+ * svn_auth_cred_simple_t that gets/sets information from the user's
+ * ~/.subversion configuration directory.
+ *
+ * This is like svn_client_get_simple_provider(), except that the
+ * password is obtained from gpg_agent, which will keep it in
+ * a memory cache.
+ *
+ * Allocate @a *provider in @a pool.
+ *
+ * @since New in 1.8
+ * @note This function actually works only on systems with
+ * GNU Privacy Guard installed.
+ */
+void
+svn_auth_get_gpg_agent_simple_provider
+    (svn_auth_provider_object_t **provider,
+     apr_pool_t *pool);
+#endif /* !defined(WIN32) || defined(DOXYGEN) */
+
 
 /** Set @a *provider to an authentication provider of type @c
  * svn_auth_cred_username_t that gets/sets information from a user's

Modified: subversion/branches/svn_mutex/subversion/include/svn_client.h
URL: http://svn.apache.org/viewvc/subversion/branches/svn_mutex/subversion/include/svn_client.h?rev=1182053&r1=1182052&r2=1182053&view=diff
==============================================================================
--- subversion/branches/svn_mutex/subversion/include/svn_client.h (original)
+++ subversion/branches/svn_mutex/subversion/include/svn_client.h Tue Oct 11 19:52:34 2011
@@ -356,8 +356,9 @@ typedef struct svn_client_proplist_item_
 
 /**
  * The callback invoked by svn_client_proplist3().  Each invocation
- * describes the property specified by @a item.  Use @a pool for all
- * temporary allocation.
+ * provides the regular properties of @a path which is either a WC path or
+ * a URL.  @a prop_hash maps property names (char *) to property
+   values (svn_string_t *).  Use @a pool for all temporary allocation.
  *
  * @since New in 1.5.
  */
@@ -476,6 +477,7 @@ typedef struct svn_client_commit_item3_t
   /**
    * When processing the commit this contains the relative path for
    * the commit session. #NULL until the commit item is preprocessed.
+   * @since New in 1.7.
    */
   const char *session_relpath;
 } svn_client_commit_item3_t;
@@ -1559,6 +1561,9 @@ svn_client_add(const char *path,
 
 /** Create a directory, either in a repository or a working copy.
  *
+ * @a paths is an array of (const char *) paths, either all local WC paths
+ * or all URLs.
+ *
  * If @a paths contains URLs, use the authentication baton in @a ctx
  * and @a message to immediately attempt to commit the creation of the
  * directories in @a paths in the repository.
@@ -1654,6 +1659,9 @@ svn_client_mkdir(svn_client_commit_info_
 
 /** Delete items from a repository or working copy.
  *
+ * @a paths is an array of (const char *) paths, either all local WC paths
+ * or all URLs.
+ *
  * If the paths in @a paths are URLs, use the authentication baton in
  * @a ctx and @a ctx->log_msg_func3/@a ctx->log_msg_baton3 to
  * immediately attempt to commit a deletion of the URLs from the
@@ -2103,11 +2111,11 @@ typedef struct svn_client_status_t
    * svn_wc_status_modified and svn_wc_status_conflicted. */
   enum svn_wc_status_kind prop_status;
 
-  /** a node can be 'locked' if a working copy update is in progress or
+  /** A node can be 'locked' if a working copy update is in progress or
    * was interrupted. */
   svn_boolean_t wc_is_locked;
 
-  /** a file or directory can be 'copied' if it's scheduled for
+  /** A file or directory can be 'copied' if it's scheduled for
    * addition-with-history (or part of a subtree that is scheduled as such.).
    */
   svn_boolean_t copied;
@@ -2115,6 +2123,9 @@ typedef struct svn_client_status_t
   /** The URL of the repository root. */
   const char *repos_root_url;
 
+  /** The UUID of the repository */
+  const char *repos_uuid;
+
   /** The in-repository path relative to the repository root. */
   const char *repos_relpath;
 
@@ -2130,7 +2141,7 @@ typedef struct svn_client_status_t
   /** Last commit author of this item */
   const char *changed_author;
 
-    /** a file or directory can be 'switched' if the switch command has been
+  /** A file or directory can be 'switched' if the switch command has been
    * used.  If this is TRUE, then file_external will be FALSE.
    */
   svn_boolean_t switched;
@@ -2196,11 +2207,44 @@ typedef struct svn_client_status_t
 
   /** @} */
 
-  /** Reserved for libsvn_client's internal use; this value is only to be used for
-   * libsvn_client backwards compatibility wrappers. This value may be NULL or
-   * to other data in future versions. */
+  /** Reserved for libsvn_client's internal use; this value is only to be used
+   * for libsvn_client backwards compatibility wrappers. This value may be NULL
+   * or to other data in future versions. */
   const void *backwards_compatibility_baton;
 
+  /** Set to the local absolute path that this node was moved from, if this
+   * file or directory has been moved here locally and is the root of that
+   * move. Otherwise set to NULL.
+   *
+   * This will be NULL for moved-here nodes that are just part of a subtree
+   * that was moved along (and are not themselves a root of a different move
+   * operation).
+   * 
+   * @since New in 1.8. */
+  const char *moved_from_abspath;
+
+  /** Set to the local absolute path that this node was moved to, if this file
+   * or directory has been moved away locally and corresponds to the root
+   * of the destination side of the move. Otherwise set to NULL.
+   *
+   * Note: Saying just "root" here could be misleading. For example:
+   *   svn mv A AA;
+   *   svn mv AA/B BB;
+   * creates a situation where A/B is moved-to BB, but one could argue that
+   * the move source's root actually was AA/B. Note that, as far as the
+   * working copy is concerned, above case is exactly identical to:
+   *   svn mv A/B BB;
+   *   svn mv A AA;
+   * In both situations, @a moved_to_abspath would be set for nodes A (moved
+   * to AA) and A/B (moved to BB), only.
+   *
+   * This will be NULL for moved-away nodes that were just part of a subtree
+   * that was moved along (and are not themselves a root of a different move
+   * operation).
+   *
+   * @since New in 1.8. */
+  const char *moved_to_abspath;
+
   /* NOTE! Please update svn_client_status_dup() when adding new fields here. */
 } svn_client_status_t;
 
@@ -2279,7 +2323,7 @@ typedef svn_error_t *(*svn_client_status
  *
  * If @a path is an absolute path then the @c path parameter passed in each
  * call to @a status_func will be an absolute path.
- * 
+ *
  * All temporary allocations are performed in @a scratch_pool.
  *
  * @since New in 1.7.
@@ -2419,8 +2463,11 @@ svn_client_status(svn_revnum_t *result_r
  * If @a limit is non-zero only invoke @a receiver on the first @a limit
  * logs.
  *
- * If @a discover_changed_paths is set, then the `@a changed_paths' argument
- * to @a receiver will be passed on each invocation.
+ * If @a discover_changed_paths is set, then the @c changed_paths and @c
+ * changed_paths2 fields in the @c log_entry argument to @a receiver will be
+ * populated on each invocation.  @note The @c text_modified and @c
+ * props_modified fields of the changed paths structure may have the value
+ * #svn_tristate_unknown if the repository does not report that information.
  *
  * If @a strict_node_history is set, copy history (if any exists) will
  * not be traversed while harvesting revision logs for each target.
@@ -2428,18 +2475,12 @@ svn_client_status(svn_revnum_t *result_r
  * If @a include_merged_revisions is set, log information for revisions
  * which have been merged to @a targets will also be returned.
  *
- * If @a revprops is NULL, retrieve all revprops; else, retrieve only the
- * revprops named in the array (i.e. retrieve none if the array is empty).
+ * If @a revprops is NULL, retrieve all revision properties; else, retrieve
+ * only the revision properties named by the (const char *) array elements
+ * (i.e. retrieve none if the array is empty).
  *
  * Use @a pool for any temporary allocation.
  *
- * @par Important:
- * A special case for the revision range HEAD:1, which was present
- * in svn_client_log(), has been removed from svn_client_log2().  Instead, it
- * is expected that callers will specify the range HEAD:0, to avoid a
- * #SVN_ERR_FS_NO_SUCH_REVISION error when invoked against an empty repository
- * (i.e. one not containing a revision 1).
- *
  * If @a ctx->notify_func2 is non-NULL, then call @a ctx->notify_func2/baton2
  * with a 'skip' signal on any unversioned targets.
  *
@@ -2510,6 +2551,13 @@ svn_client_log3(const apr_array_header_t
  * Similar to svn_client_log3(), but with the @c kind field of
  * @a peg_revision set to #svn_opt_revision_unspecified.
  *
+ * @par Important:
+ * A special case for the revision range HEAD:1, which was present
+ * in svn_client_log(), has been removed from svn_client_log2().  Instead, it
+ * is expected that callers will specify the range HEAD:0, to avoid a
+ * #SVN_ERR_FS_NO_SUCH_REVISION error when invoked against an empty repository
+ * (i.e. one not containing a revision 1).
+ *
  * @deprecated Provided for compatibility with the 1.3 API.
  * @since New in 1.2.
  */
@@ -2738,6 +2786,10 @@ svn_client_blame(const char *path_or_url
  * If @a show_copies_as_adds is TRUE, then copied files will not be diffed
  * against their copyfrom source, and will appear in the diff output
  * in their entirety, as if they were newly added.
+ * ### BUGS: For a repos-repos diff, this is ignored. Instead, a file is
+ *     diffed against its copyfrom source iff the file is the diff target
+ *     and not if some parent directory is the diff target. For a repos-WC
+ *     diff, this is ignored if the file is the diff target.
  *
  * If @a use_git_diff_format is TRUE, then the git's extended diff format
  * will be used.
@@ -2773,8 +2825,35 @@ svn_client_blame(const char *path_or_url
  * @note @a relative_to_dir doesn't affect the path index generated by
  * external diff programs.
  *
+ * @since New in 1.8.
+ */
+svn_error_t *
+svn_client_diff6(const apr_array_header_t *diff_options,
+                 const char *path1,
+                 const svn_opt_revision_t *revision1,
+                 const char *path2,
+                 const svn_opt_revision_t *revision2,
+                 const char *relative_to_dir,
+                 svn_depth_t depth,
+                 svn_boolean_t ignore_ancestry,
+                 svn_boolean_t no_diff_deleted,
+                 svn_boolean_t show_copies_as_adds,
+                 svn_boolean_t ignore_content_type,
+                 svn_boolean_t use_git_diff_format,
+                 const char *header_encoding,
+                 svn_stream_t *outstream,
+                 svn_stream_t *errstream,
+                 const apr_array_header_t *changelists,
+                 svn_client_ctx_t *ctx,
+                 apr_pool_t *pool);
+
+/** Similar to svn_client_diff6(), but with @a outfile and @a errfile,
+ * instead of @a outstream and @a errstream.
+ *
+ * @deprecated Provided for backward compatibility with the 1.7 API.
  * @since New in 1.7.
  */
+SVN_DEPRECATED
 svn_error_t *
 svn_client_diff5(const apr_array_header_t *diff_options,
                  const char *path1,
@@ -2907,6 +2986,33 @@ svn_client_diff(const apr_array_header_t
  * @since New in 1.7.
  */
 svn_error_t *
+svn_client_diff_peg6(const apr_array_header_t *diff_options,
+                     const char *path,
+                     const svn_opt_revision_t *peg_revision,
+                     const svn_opt_revision_t *start_revision,
+                     const svn_opt_revision_t *end_revision,
+                     const char *relative_to_dir,
+                     svn_depth_t depth,
+                     svn_boolean_t ignore_ancestry,
+                     svn_boolean_t no_diff_deleted,
+                     svn_boolean_t show_copies_as_adds,
+                     svn_boolean_t ignore_content_type,
+                     svn_boolean_t use_git_diff_format,
+                     const char *header_encoding,
+                     svn_stream_t *outstream,
+                     svn_stream_t *errstream,
+                     const apr_array_header_t *changelists,
+                     svn_client_ctx_t *ctx,
+                     apr_pool_t *pool);
+
+/** Similar to svn_client_diff_peg6(), but with @a outfile and @a errfile,
+ * instead of @a outstream and @a errstream.
+ *
+ * @deprecated Provided for backward compatibility with the 1.7 API.
+ * @since New in 1.7.
+ */
+SVN_DEPRECATED
+svn_error_t *
 svn_client_diff_peg5(const apr_array_header_t *diff_options,
                      const char *path,
                      const svn_opt_revision_t *peg_revision,
@@ -3467,14 +3573,15 @@ svn_client_mergeinfo_get_merged(apr_hash
 /**
  * If @a finding_merged is TRUE, then drive log entry callbacks
  * @a receiver / @a receiver_baton with the revisions merged from
- * @a merge_source_path_or_url (as of @a src_peg_revision) into
- * @a path_or_url (as of @a peg_revision).  If @a finding_merged is FALSE
- * then find the revisions eligible for merging.
+ * @a source_path_or_url (as of @a source_peg_revision) into
+ * @a target_path_or_url (as of @a target_peg_revision).  If @a
+ * finding_merged is FALSE then find the revisions eligible for merging.
  *
  * If @a depth is #svn_depth_empty consider only the explicit or
- * inherited mergeinfo on @a path_or_url when calculating merged revisions
- * from @a merge_source_path_or_url.  If @a depth is #svn_depth_infinity
- * then also consider the explicit subtree mergeinfo under @a path_or_url.
+ * inherited mergeinfo on @a target_path_or_url when calculating merged
+ * revisions from @a source_path_or_url.  If @a depth is #svn_depth_infinity
+ * then also consider the explicit subtree mergeinfo under @a
+ * target_path_or_url.
  * If a depth other than #svn_depth_empty or #svn_depth_infinity is
  * requested then return a #SVN_ERR_UNSUPPORTED_FEATURE error.
  *
@@ -3490,10 +3597,10 @@ svn_client_mergeinfo_get_merged(apr_hash
  */
 svn_error_t *
 svn_client_mergeinfo_log(svn_boolean_t finding_merged,
-                         const char *path_or_url,
-                         const svn_opt_revision_t *peg_revision,
-                         const char *merge_source_path_or_url,
-                         const svn_opt_revision_t *src_peg_revision,
+                         const char *target_path_or_url,
+                         const svn_opt_revision_t *target_peg_revision,
+                         const char *source_path_or_url,
+                         const svn_opt_revision_t *source_peg_revision,
                          svn_log_entry_receiver_t receiver,
                          void *receiver_baton,
                          svn_boolean_t discover_changed_paths,
@@ -3648,11 +3755,13 @@ svn_client_relocate(const char *dir,
  */
 
 /**
- * Restore the pristine version of a working copy @a paths,
+ * Restore the pristine version of working copy @a paths,
  * effectively undoing any local mods.  For each path in @a paths,
  * revert it if it is a file.  Else if it is a directory, revert
  * according to @a depth:
  *
+ * @a paths is an array of (const char *) local WC paths.
+ *
  * If @a depth is #svn_depth_empty, revert just the properties on
  * the directory; else if #svn_depth_files, revert the properties
  * and any files immediately under the directory; else if
@@ -3788,20 +3897,14 @@ typedef struct svn_client_copy_source_t
     const svn_opt_revision_t *peg_revision;
 } svn_client_copy_source_t;
 
-/** Copy each @a src in @a sources to @a dst_path.
+/** Copy each source in @a sources to @a dst_path.
  *
  * If multiple @a sources are given, @a dst_path must be a directory,
  * and @a sources will be copied as children of @a dst_path.
  *
- * @a sources must be an array of elements of type
- * <tt>svn_client_copy_source_t *</tt>.
- *
- * Each @a src in @a sources must be files or directories under version control,
- * or URLs of a versioned item in the repository.  If @a sources has multiple
- * items, the @a src members must be all repository URLs or all working copy
- * paths.
- *
- * The parent of @a dst_path must already exist.
+ * @a sources is an array of <tt>svn_client_copy_source_t *</tt> elements,
+ * either all referring to local WC items or all referring to versioned
+ * items in the repository.
  *
  * If @a sources has only one item, attempt to copy it to @a dst_path.  If
  * @a copy_as_child is TRUE and @a dst_path already exists, attempt to copy the
@@ -3829,7 +3932,7 @@ typedef struct svn_client_copy_source_t
  * This scheduling can be removed with svn_client_revert2().
  *
  * If @a make_parents is TRUE, create any non-existent parent directories
- * also.
+ * also.  Otherwise the parent of @a dst_path must already exist.
  *
  * If @a ignore_externals is set, don't process externals definitions
  * as part of this operation.
@@ -3969,10 +4072,10 @@ svn_client_copy(svn_client_commit_info_t
 /**
  * Move @a src_paths to @a dst_path.
  *
- * @a src_paths must be files or directories under version control, or
- * URLs of versioned items in the repository.  All @a src_paths must be of
- * the same type.  If multiple @a src_paths are given, @a dst_path must be
- * a directory and @a src_paths will be moved as children of @a dst_path.
+ * @a src_paths is an array of (const char *) paths -- either all WC paths
+ * or all URLs -- of versioned items.  If multiple @a src_paths are given,
+ * @a dst_path must be a directory and @a src_paths will be moved as
+ * children of @a dst_path.
  *
  * If @a src_paths are repository URLs:
  *
@@ -3996,8 +4099,6 @@ svn_client_copy(svn_client_commit_info_t
  *     is a directory it will remain in the working copy but all the files,
  *     and unversioned items, it contains will be removed.
  *
- * The parent of @a dst_path must already exist.
- *
  * If @a src_paths has only one item, attempt to move it to @a dst_path.  If
  * @a move_as_child is TRUE and @a dst_path already exists, attempt to move the
  * item as a child of @a dst_path.  If @a move_as_child is FALSE and
@@ -4015,7 +4116,7 @@ svn_client_copy(svn_client_commit_info_t
  * with #SVN_ERR_CLIENT_MULTIPLE_SOURCES_DISALLOWED.
  *
  * If @a make_parents is TRUE, create any non-existent parent directories
- * also.
+ * also.  Otherwise, the parent of @a dst_path must already exist.
  *
  * If non-NULL, @a revprop_table is a hash table holding additional,
  * custom revision properties (<tt>const char *</tt> names mapped to
@@ -4395,6 +4496,8 @@ svn_client_revprop_set(const char *propn
  * Allocate @a *props, its keys, and its values in @a pool, use
  * @a scratch_pool for temporary allocations.
  *
+ * @a target is a WC absolute path or a URL.
+ *
  * Don't store any path, not even @a target, if it does not have a
  * property named @a propname.
  *
@@ -4433,7 +4536,7 @@ svn_client_revprop_set(const char *propn
 svn_error_t *
 svn_client_propget4(apr_hash_t **props,
                     const char *propname,
-                    const char *target,
+                    const char *target,  /* abspath or URL */
                     const svn_opt_revision_t *peg_revision,
                     const svn_opt_revision_t *revision,
                     svn_revnum_t *actual_revnum,
@@ -4527,6 +4630,8 @@ svn_client_revprop_get(const char *propn
  * of @a target, a URL or working copy path.  @a receiver will be called
  * for each path encountered.
  *
+ * @a target is a WC path or a URL.
+ *
  * If @a revision->kind is #svn_opt_revision_unspecified, then get
  * properties from the working copy, if @a target is a working copy
  * path, or from the repository head if @a target is a URL.  Else get
@@ -5037,6 +5142,8 @@ svn_client_cat(svn_stream_t *out,
  * @a changelist.  (For now, a path cannot belong to two changelists
  * at once.)
  *
+ * @a paths is an array of (const char *) local WC paths.
+ *
  * @a changelists is an array of <tt>const char *</tt> changelist
  * names, used as a restrictive filter on items whose changelist
  * assignments are adjusted; that is, don't tweak the changeset of any
@@ -5061,6 +5168,8 @@ svn_client_add_to_changelist(const apr_a
  * Remove each path in @a paths (recursing to @a depth as necessary)
  * from changelists to which they are currently assigned.
  *
+ * @a paths is an array of (const char *) local WC paths.
+ *
  * @a changelists is an array of <tt>const char *</tt> changelist
  * names, used as a restrictive filter on items whose changelist
  * assignments are removed; that is, don't remove from a changeset any
@@ -5090,6 +5199,8 @@ svn_client_remove_from_changelists(const
  * Call @a callback_func (with @a callback_baton) each time a
  * changelist-having path is discovered.
  *
+ * @a path is a local WC path.
+ *
  * If @a ctx->cancel_func is not @c NULL, invoke it passing @a
  * ctx->cancel_baton during the recursive walk.
  *
@@ -5116,8 +5227,8 @@ svn_client_get_changelists(const char *p
 
 /**
  * Lock @a targets in the repository.  @a targets is an array of
- * <tt>const char *</tt> paths - either all working copy paths or URLs.  All
- * @a targets must be in the same repository.
+ * <tt>const char *</tt> paths - either all working copy paths or all URLs.
+ * All targets must be in the same repository.
  *
  * If a target is already locked in the repository, no lock will be
  * acquired unless @a steal_lock is TRUE, in which case the locks are
@@ -5147,10 +5258,10 @@ svn_client_lock(const apr_array_header_t
 /**
  * Unlock @a targets in the repository.  @a targets is an array of
  * <tt>const char *</tt> paths - either all working copy paths or all URLs.
- * All @a targets must be in the same repository.
+ * All targets must be in the same repository.
  *
  * If the targets are WC paths, and @a break_lock is FALSE, the working
- * copy must contain a locks for each target.
+ * copy must contain a lock for each target.
  * If this is not the case, or the working copy lock doesn't match the
  * lock token in the repository, an error will be signaled.
  *
@@ -5384,10 +5495,10 @@ typedef struct svn_client_info2_t
   const char *last_changed_author;
 
   /** An exclusive lock, if present.  Could be either local or remote. */
-  svn_lock_t *lock;
+  const svn_lock_t *lock;
 
-  /* Possible information about the working copy, NULL if not valid. */
-  struct svn_wc_info_t *wc_info;
+  /** Possible information about the working copy, NULL if not valid. */
+  const svn_wc_info_t *wc_info;
 
 } svn_client_info2_t;
 
@@ -5448,6 +5559,11 @@ typedef svn_error_t *(*svn_client_info_r
  * recurse fully, invoking @a receiver on @a abspath_or_url and
  * everything beneath it.
  *
+ * If @a fetch_excluded is TRUE, also also send excluded nodes in the working
+ * copy to @a receiver, otherwise these are skipped. If @a fetch_actual_only
+ * is TRUE also send nodes that don't exist as versioned but are still
+ * tree conflicted.
+ *
  * @a changelists is an array of <tt>const char *</tt> changelist
  * names, used as a restrictive filter on items whose info is
  * reported; that is, don't report info about any item unless
@@ -5460,10 +5576,12 @@ svn_error_t *
 svn_client_info3(const char *abspath_or_url,
                  const svn_opt_revision_t *peg_revision,
                  const svn_opt_revision_t *revision,
-                 svn_client_info_receiver2_t receiver,
-                 void *receiver_baton,
                  svn_depth_t depth,
+                 svn_boolean_t fetch_excluded,
+                 svn_boolean_t fetch_actual_only,
                  const apr_array_header_t *changelists,
+                 svn_client_info_receiver2_t receiver,
+                 void *receiver_baton,
                  svn_client_ctx_t *ctx,
                  apr_pool_t *scratch_pool);
 

Modified: subversion/branches/svn_mutex/subversion/include/svn_config.h
URL: http://svn.apache.org/viewvc/subversion/branches/svn_mutex/subversion/include/svn_config.h?rev=1182053&r1=1182052&r2=1182053&view=diff
==============================================================================
--- subversion/branches/svn_mutex/subversion/include/svn_config.h (original)
+++ subversion/branches/svn_mutex/subversion/include/svn_config.h Tue Oct 11 19:52:34 2011
@@ -112,6 +112,7 @@ typedef struct svn_config_t svn_config_t
 #define SVN_CONFIG_OPTION_MIMETYPES_FILE            "mime-types-file"
 #define SVN_CONFIG_OPTION_PRESERVED_CF_EXTS         "preserved-conflict-file-exts"
 #define SVN_CONFIG_OPTION_INTERACTIVE_CONFLICTS     "interactive-conflicts"
+#define SVN_CONFIG_OPTION_MEMORY_CACHE_SIZE         "memory-cache-size"
 #define SVN_CONFIG_SECTION_TUNNELS              "tunnels"
 #define SVN_CONFIG_SECTION_AUTO_PROPS           "auto-props"
 /** @} */
@@ -146,7 +147,7 @@ typedef struct svn_config_t svn_config_t
  * but we don't want the # character to end up in the variable.
  */
 #define SVN_CONFIG__DEFAULT_GLOBAL_IGNORES_LINE_1 \
-  "*.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo"
+  "*.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo __pycache__"
 #define SVN_CONFIG__DEFAULT_GLOBAL_IGNORES_LINE_2 \
   "*.rej *~ #*# .#* .*.swp .DS_Store"
 

Modified: subversion/branches/svn_mutex/subversion/include/svn_dav.h
URL: http://svn.apache.org/viewvc/subversion/branches/svn_mutex/subversion/include/svn_dav.h?rev=1182053&r1=1182052&r2=1182053&view=diff
==============================================================================
--- subversion/branches/svn_mutex/subversion/include/svn_dav.h (original)
+++ subversion/branches/svn_mutex/subversion/include/svn_dav.h Tue Oct 11 19:52:34 2011
@@ -266,11 +266,6 @@ extern "C" {
  */
 #define SVN_DAV_NS_DAV_SVN_MERGEINFO SVN_DAV_PROP_NS_DAV "svn/mergeinfo"
 
-/** Similar SVN_DAV_NS_DAV_SVN_MERGEINFO but indicates that the server
- * knows how to handle requests to validate inherited mergeinfo. */
-#define SVN_DAV_NS_DAV_SVN_MERGEINFO_VALIDATION \
-  SVN_DAV_PROP_NS_DAV "svn/mergeinfo-validation"
-
 /** Presence of this in a DAV header in an OPTIONS response indicates
  * that the transmitter (in this case, the server) knows how to send
  * custom revprops in log responses. */

Modified: subversion/branches/svn_mutex/subversion/include/svn_delta.h
URL: http://svn.apache.org/viewvc/subversion/branches/svn_mutex/subversion/include/svn_delta.h?rev=1182053&r1=1182052&r2=1182053&view=diff
==============================================================================
--- subversion/branches/svn_mutex/subversion/include/svn_delta.h (original)
+++ subversion/branches/svn_mutex/subversion/include/svn_delta.h Tue Oct 11 19:52:34 2011
@@ -41,6 +41,7 @@
 #include "svn_string.h"
 #include "svn_io.h"
 #include "svn_checksum.h"
+#include "svn_editor.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -649,10 +650,12 @@ svn_txdelta_skip_svndiff_window(apr_file
  *
  * Each of these takes a directory baton, indicating the directory
  * in which the change takes place, and a @a path argument, giving the
- * path (relative to the root of the edit) of the file,
- * subdirectory, or directory entry to change. Editors will usually
- * want to join this relative path with some base stored in the edit
- * baton (e.g. a URL, a location in the OS filesystem).
+ * path of the file, subdirectory, or directory entry to change.
+ * 
+ * The @a path argument to each of the callbacks is relative to the
+ * root of the edit.  Editors will usually want to join this relative
+ * path with some base stored in the edit baton (e.g. a URL, or a
+ * location in the OS filesystem).
  *
  * Since every call requires a parent directory baton, including
  * @c add_directory and @c open_directory, where do we ever get our
@@ -826,7 +829,7 @@ typedef struct svn_delta_editor_t
                             void **root_baton);
 
 
-  /** Remove the directory entry named @a path, a child of the directory
+  /** Remove the directory entry at @a path, a child of the directory
    * represented by @a parent_baton.  If @a revision is a valid
    * revision number, it is used as a sanity check to ensure that you
    * are really removing the revision of @a path that you think you are.
@@ -847,9 +850,10 @@ typedef struct svn_delta_editor_t
                                apr_pool_t *scratch_pool);
 
 
-  /** We are going to add a new subdirectory named @a path.  We will use
+  /** We are going to add a new subdirectory at @a path, a child of
+   * the directory represented by @a parent_baton.  We will use
    * the value this callback stores in @a *child_baton as the
-   * @a parent_baton for further changes in the new subdirectory.
+   * parent baton for further changes in the new subdirectory.
    *
    * If @a copyfrom_path is non-@c NULL, this add has history (i.e., is a
    * copy), and the origin of the copy may be recorded as
@@ -866,10 +870,10 @@ typedef struct svn_delta_editor_t
                                 apr_pool_t *result_pool,
                                 void **child_baton);
 
-  /** We are going to make changes in a subdirectory (of the directory
-   * identified by @a parent_baton). The subdirectory is specified by
-   * @a path. The callback must store a value in @a *child_baton that
-   * should be used as the @a parent_baton for subsequent changes in this
+  /** We are going to make changes in the subdirectory at @a path, a
+   * child of the directory represented by @a parent_baton.
+   * The callback must store a value in @a *child_baton that
+   * should be used as the parent baton for subsequent changes in this
    * subdirectory.  If a valid revnum, @a base_revision is the current
    * revision of the subdirectory.
    *
@@ -921,7 +925,8 @@ typedef struct svn_delta_editor_t
                                    void *parent_baton,
                                    apr_pool_t *scratch_pool);
 
-  /** We are going to add a new file named @a path.  The callback can
+  /** We are going to add a new file at @a path, a child of the
+   * directory represented by @a parent_baton.  The callback can
    * store a baton for this new file in @a **file_baton; whatever value
    * it stores there should be passed through to @c apply_textdelta.
    *
@@ -950,8 +955,8 @@ typedef struct svn_delta_editor_t
                            apr_pool_t *result_pool,
                            void **file_baton);
 
-  /** We are going to make change to a file named @a path, which resides
-   * in the directory identified by @a parent_baton.
+  /** We are going to make changes to a file at @a path, a child of the
+   * directory represented by @a parent_baton.
    *
    * The callback can store a baton for this new file in @a **file_baton;
    * whatever value it stores there should be passed through to
@@ -1081,6 +1086,93 @@ typedef struct svn_delta_editor_t
 svn_delta_editor_t *
 svn_delta_default_editor(apr_pool_t *pool);
 
+/** Callback to retrieve a node's entire set of properties.  This is
+ * needed by the various editor shims in order to effect backward compat.
+ *
+ * @since New in 1.8.
+ */
+typedef svn_error_t *(*svn_delta_fetch_props_func_t)(
+  apr_hash_t **props,
+  void *baton,
+  const char *path,
+  apr_pool_t *result_pool,
+  apr_pool_t *scratch_pool
+  );
+
+/** Callback to retrieve a node's kind.  This is needed by the various editor
+ * shims in order to effect backward compat.
+ *
+ * @since New in 1.8.
+ */
+typedef svn_error_t *(*svn_delta_fetch_kind_func_t)(
+  svn_node_kind_t *kind,
+  void *baton,
+  const char *path,
+  apr_pool_t *scratch_pool
+  );
+
+/* Return a delta editor and baton which will forward calls to @a editor,
+ * allocated in @a pool.
+ *
+ * @note: Since the semantics behind the two editors are different, calls
+ * the timing of calls forwarded to @a editor may be imprecise.  That is,
+ * the memory and computational overhead in using this forwarding
+ * mechanism may be large.
+ *
+ * @since New in 1.8.
+ */
+svn_error_t *
+svn_delta_from_editor(const svn_delta_editor_t **deditor,
+                      void **dedit_baton,
+                      svn_editor_t *editor,
+                      svn_delta_fetch_props_func_t fetch_props_func,
+                      void *fetch_props_baton,
+                      apr_pool_t *pool);
+
+/* Return an editor allocated in @a result_pool which will forward calls
+ * to @a deditor using @a dedit_baton.
+ *
+ * @note Since the sematics behind the two editors are different, the
+ * timing of calls forwarded to the @a editor may be imprecise, and the
+ * overhead large.
+ *
+ * @since New in 1.8.
+ */
+svn_error_t *
+svn_editor_from_delta(svn_editor_t **editor,
+                      const svn_delta_editor_t *deditor,
+                      void *dedit_baton,
+                      svn_cancel_func_t cancel_func,
+                      void *cancel_baton,
+                      svn_delta_fetch_kind_func_t fetch_kind_func,
+                      void *fetch_kind_baton,
+                      apr_pool_t *result_pool,
+                      apr_pool_t *scratch_pool);
+
+/** A temporary API which conditionally inserts a double editor shim
+ * into the chain of delta editors.  Used for testing Editor v2.
+ *
+ * Whether or not the shims are inserted is controlled by a compile-time
+ * option in libsvn_delta/compat.c.
+ *
+ * @note The use of these shims and this API will likely cause all kinds
+ * of performance degredation.  (Which is actually a moot point since they
+ * don't even work properly yet anyway.)
+ *
+ * ### This should not ship in the final release.
+ */
+svn_error_t *
+svn_editor__insert_shims(const svn_delta_editor_t **deditor_out,
+                         void **dedit_baton_out,
+                         const svn_delta_editor_t *deditor_in,
+                         void *dedit_baton_in,
+                         svn_delta_fetch_props_func_t fetch_props_func,
+                         void *fetch_props_baton,
+                         svn_delta_fetch_kind_func_t fetch_kind_func,
+                         void *fetch_kind_baton,
+                         apr_pool_t *result_pool,
+                         apr_pool_t *scratch_pool);
+
 /** A text-delta window handler which does nothing.
  *
  * Editors can return this handler from @c apply_textdelta if they don't

Modified: subversion/branches/svn_mutex/subversion/include/svn_diff.h
URL: http://svn.apache.org/viewvc/subversion/branches/svn_mutex/subversion/include/svn_diff.h?rev=1182053&r1=1182052&r2=1182053&view=diff
==============================================================================
--- subversion/branches/svn_mutex/subversion/include/svn_diff.h (original)
+++ subversion/branches/svn_mutex/subversion/include/svn_diff.h Tue Oct 11 19:52:34 2011
@@ -477,6 +477,7 @@ svn_diff_file_options_create(apr_pool_t 
  * - --ignore-space-change, -b
  * - --ignore-all-space, -w
  * - --ignore-eol-style
+ * - --show-c-function, -p @since New in 1.5.
  * - --unified, -u (for compatibility, does nothing).
  */
 svn_error_t *

Modified: subversion/branches/svn_mutex/subversion/include/svn_dirent_uri.h
URL: http://svn.apache.org/viewvc/subversion/branches/svn_mutex/subversion/include/svn_dirent_uri.h?rev=1182053&r1=1182052&r2=1182053&view=diff
==============================================================================
--- subversion/branches/svn_mutex/subversion/include/svn_dirent_uri.h (original)
+++ subversion/branches/svn_mutex/subversion/include/svn_dirent_uri.h Tue Oct 11 19:52:34 2011
@@ -575,6 +575,9 @@ svn_uri__is_child(const char *parent_uri
  * the same as @a parent_dirent, it is not considered a child, so the result
  * is @c NULL; an empty string is never returned.
  *
+ * ### TODO: Deprecate, as the semantics are trivially
+ * obtainable from *_skip_ancestor().
+ *
  * @since New in 1.6.
  */
 const char *
@@ -594,6 +597,9 @@ svn_relpath__is_child(const char *parent
 /** Return TRUE if @a parent_dirent is an ancestor of @a child_dirent or
  * the dirents are equal, and FALSE otherwise.
  *
+ * ### TODO: Deprecate, as the semantics are trivially
+ * obtainable from *_skip_ancestor().
+ *
  * @since New in 1.6.
  */
 svn_boolean_t

Modified: subversion/branches/svn_mutex/subversion/include/svn_error.h
URL: http://svn.apache.org/viewvc/subversion/branches/svn_mutex/subversion/include/svn_error.h?rev=1182053&r1=1182052&r2=1182053&view=diff
==============================================================================
--- subversion/branches/svn_mutex/subversion/include/svn_error.h (original)
+++ subversion/branches/svn_mutex/subversion/include/svn_error.h Tue Oct 11 19:52:34 2011
@@ -383,14 +383,16 @@ svn_error_t *svn_error_purge_tracing(svn
  * Return TRUE if @a err is an error specifically related to locking a
  * path in the repository, FALSE otherwise.
  *
- * SVN_ERR_FS_OUT_OF_DATE is in here because it's a non-fatal error
- * that can be thrown when attempting to lock an item.
+ * SVN_ERR_FS_OUT_OF_DATE and SVN_ERR_FS_NOT_FOUND are in here because it's a
+ * non-fatal error that can be thrown when attempting to lock an item.
  *
  * @since New in 1.2.
  */
 #define SVN_ERR_IS_LOCK_ERROR(err)                          \
   (err->apr_err == SVN_ERR_FS_PATH_ALREADY_LOCKED ||        \
-   err->apr_err == SVN_ERR_FS_OUT_OF_DATE)                  \
+   err->apr_err == SVN_ERR_FS_NOT_FOUND           ||        \
+   err->apr_err == SVN_ERR_FS_OUT_OF_DATE         ||        \
+   err->apr_err == SVN_ERR_FS_BAD_LOCK_TOKEN)
 
 /**
  * Return TRUE if @a err is an error specifically related to unlocking

Modified: subversion/branches/svn_mutex/subversion/include/svn_error_codes.h
URL: http://svn.apache.org/viewvc/subversion/branches/svn_mutex/subversion/include/svn_error_codes.h?rev=1182053&r1=1182052&r2=1182053&view=diff
==============================================================================
--- subversion/branches/svn_mutex/subversion/include/svn_error_codes.h (original)
+++ subversion/branches/svn_mutex/subversion/include/svn_error_codes.h Tue Oct 11 19:52:34 2011
@@ -528,7 +528,12 @@ SVN_ERROR_START
   /** @since New in 1.7. */
   SVN_ERRDEF(SVN_ERR_WC_INVALID_OPERATION_DEPTH,
              SVN_ERR_WC_CATEGORY_START + 38,
-             "This operation can not be performed with just this depth.")
+             "The operation cannot be performed with the specified depth")
+
+  /** @since New in 1.7. */
+  SVN_ERRDEF(SVN_ERR_WC_PATH_ACCESS_DENIED,
+             SVN_ERR_WC_CATEGORY_START + 39,
+             "Couldn't open a working copy file because access was denied")
 
   /* fs errors */
 
@@ -1362,7 +1367,9 @@ SVN_ERROR_START
              SVN_ERR_MISC_CATEGORY_START + 31,
              "Attempted to write to readonly SQLite db")
 
-  /** @since New in 1.6. */
+  /** @since New in 1.6.
+   * @deprecated the internal sqlite support code does not manage schemas
+   * any longer.  */
   SVN_ERRDEF(SVN_ERR_SQLITE_UNSUPPORTED_SCHEMA,
              SVN_ERR_MISC_CATEGORY_START + 32,
              "Unsupported schema found in SQLite db")

Modified: subversion/branches/svn_mutex/subversion/include/svn_fs.h
URL: http://svn.apache.org/viewvc/subversion/branches/svn_mutex/subversion/include/svn_fs.h?rev=1182053&r1=1182052&r2=1182053&view=diff
==============================================================================
--- subversion/branches/svn_mutex/subversion/include/svn_fs.h (original)
+++ subversion/branches/svn_mutex/subversion/include/svn_fs.h Tue Oct 11 19:52:34 2011
@@ -113,13 +113,6 @@ typedef struct svn_fs_t svn_fs_t;
  * @since New in 1.6.
  */
 #define SVN_FS_CONFIG_PRE_1_6_COMPATIBLE        "pre-1.6-compatible"
-
-/** Create repository format compatible with Subversion versions
- * earlier than 1.7.
- *
- * @since New in 1.7.
- */
-#define SVN_FS_CONFIG_PRE_1_7_COMPATIBLE        "pre-1.7-compatible"
 /** @} */
 
 
@@ -253,6 +246,23 @@ svn_fs_upgrade(const char *path,
                apr_pool_t *pool);
 
 /**
+ * Perform backend-specific data consistency and correctness validations
+ * to the Subversion filesystem located in the directory @a path.
+ * Use @a pool for necessary allocations.
+ *
+ * @note You probably don't want to use this directly.  Take a look at
+ * svn_repos_verify_fs2() instead, which does non-backend-specific
+ * verifications as well.
+ *
+ * @since New in 1.8.
+ */
+svn_error_t *
+svn_fs_verify(const char *path,
+              svn_cancel_func_t cancel_func,
+              void *cancel_baton,
+              apr_pool_t *pool);
+
+/**
  * Return, in @a *fs_type, a string identifying the back-end type of
  * the Subversion filesystem located in @a path.  Allocate @a *fs_type
  * in @a pool.
@@ -944,7 +954,7 @@ svn_fs_change_txn_prop(svn_fs_txn_t *txn
 
 /** Change, add, and/or delete transaction property values in
  * transaction @a txn.  @a props is an array of <tt>svn_prop_t</tt>
- * elements.  This is equivalent to calling svn_fs_change_txp_prop()
+ * elements.  This is equivalent to calling svn_fs_change_txn_prop()
  * multiple times with the @c name and @c value fields of each
  * successive <tt>svn_prop_t</tt>, but may be more efficient.
  * (Properties not mentioned are left alone.)  Do any necessary
@@ -1491,11 +1501,6 @@ svn_fs_closest_copy(svn_fs_root_t **root
  * @a inherit indicates whether to retrieve explicit,
  * explicit-or-inherited, or only inherited mergeinfo.
  *
- * If the mergeinfo for any path is inherited and
- * @a validate_inherited_mergeinfo is TRUE, then the mergeinfo for
- * that path in @a *catalog will only contain merge source
- * path-revisions that actually exist in repository.
- *
  * If @a include_descendants is TRUE, then additionally return the
  * mergeinfo for any descendant of any element of @a paths which has
  * the #SVN_PROP_MERGEINFO property explicitly set on it.  (Note
@@ -1505,24 +1510,8 @@ svn_fs_closest_copy(svn_fs_root_t **root
  *
  * Do any necessary temporary allocation in @a pool.
  *
- * @since New in 1.7.
- */
-svn_error_t *
-svn_fs_get_mergeinfo2(svn_mergeinfo_catalog_t *catalog,
-                      svn_fs_root_t *root,
-                      const apr_array_header_t *paths,
-                      svn_mergeinfo_inheritance_t inherit,
-                      svn_boolean_t validate_inherited_mergeinfo,
-                      svn_boolean_t include_descendants,
-                      apr_pool_t *pool);
-
-/**
- * Similar to svn_fs_get_mergeinfo2(), but with
- * @a validate_inherited_mergeinfo always passed as FALSE.
- *
- * @deprecated Provided for backward compatibility with the 1.6 API.
+ * @since New in 1.5.
  */
-SVN_DEPRECATED
 svn_error_t *
 svn_fs_get_mergeinfo(svn_mergeinfo_catalog_t *catalog,
                      svn_fs_root_t *root,
@@ -1531,25 +1520,6 @@ svn_fs_get_mergeinfo(svn_mergeinfo_catal
                      svn_boolean_t include_descendants,
                      apr_pool_t *pool);
 
-/**
- * Set @a *validated_mergeinfo equal to deep copy of @a mergeinfo, less
- * any mergeinfo that describes path-revs that do not exist in @a fs.
- * If @a mergeinfo is empty then @a *validated_mergeinfo is set to an empty
- * mergeinfo hash.  If @a mergeinfo is NULL then @a *validated_mergeinfo is
- * set to NULL.
- *
- * @a *validated_mergeinfo is allocated in @a result_pool.  All temporary
- * allocations are performed in @a scratch_pool.
- *
- * @since New in 1.7.
- */
-svn_error_t *
-svn_fs_validate_mergeinfo(svn_mergeinfo_t *validated_mergeinfo,
-                          svn_fs_t *fs,
-                          svn_mergeinfo_t mergeinfo,
-                          apr_pool_t *result_pool,
-                          apr_pool_t *scratch_pool);
-
 /** Merge changes between two nodes into a third node.
  *
  * Given nodes @a source and @a target, and a common ancestor @a ancestor,
@@ -2023,7 +1993,7 @@ svn_fs_get_uuid(svn_fs_t *fs,
 
 /** If not @c NULL, associate @a *uuid with @a fs.  Otherwise (if @a
  * uuid is @c NULL), generate a new UUID for @a fs.  Use @a pool for
- * any scratchwork.
+ * any scratch work.
  */
 svn_error_t *
 svn_fs_set_uuid(svn_fs_t *fs,

Modified: subversion/branches/svn_mutex/subversion/include/svn_io.h
URL: http://svn.apache.org/viewvc/subversion/branches/svn_mutex/subversion/include/svn_io.h?rev=1182053&r1=1182052&r2=1182053&view=diff
==============================================================================
--- subversion/branches/svn_mutex/subversion/include/svn_io.h (original)
+++ subversion/branches/svn_mutex/subversion/include/svn_io.h Tue Oct 11 19:52:34 2011
@@ -240,7 +240,7 @@ svn_io_open_uniquely_named(apr_file_t **
 /** Create a writable file, with an arbitrary and unique name, in the
  * directory @a dirpath.  Set @a *temp_path to its full path, and set
  * @a *file to the file handle, both allocated from @a result_pool.  Either
- * @a file or @a unique_name may be @c NULL.  If @a file is @c NULL, the file
+ * @a file or @a temp_path may be @c NULL.  If @a file is @c NULL, the file
  * will be created but not open.
  *
  * If @a dirpath is @c NULL, use the path returned from svn_io_temp_dir().

Modified: subversion/branches/svn_mutex/subversion/include/svn_mergeinfo.h
URL: http://svn.apache.org/viewvc/subversion/branches/svn_mutex/subversion/include/svn_mergeinfo.h?rev=1182053&r1=1182052&r2=1182053&view=diff
==============================================================================
--- subversion/branches/svn_mutex/subversion/include/svn_mergeinfo.h (original)
+++ subversion/branches/svn_mutex/subversion/include/svn_mergeinfo.h Tue Oct 11 19:52:34 2011
@@ -195,6 +195,9 @@ svn_mergeinfo_diff(svn_mergeinfo_t *dele
 /** Merge a shallow copy of one mergeinfo, @a changes, into another mergeinfo
  * @a mergeinfo.
  *
+ * Additions to @a mergeinfo are allocated in @a result_pool.  Temporary
+ * allocations are made in @a scratch_pool.
+ *
  * When intersecting rangelists for a path are merged, the inheritability of
  * the resulting svn_merge_range_t depends on the inheritability of the
  * operands.  If two non-inheritable ranges are merged the result is always
@@ -203,10 +206,22 @@ svn_mergeinfo_diff(svn_mergeinfo_t *dele
  *  e.g. '/A: 1,3-4'  merged with '/A: 1,3,4*,5' --> '/A: 1,3-5'
  *       '/A: 1,3-4*' merged with '/A: 1,3,4*,5' --> '/A: 1,3,4*,5'
  *
- * @since New in 1.5.
+ * @since New in 1.8.
  */
 svn_error_t *
-svn_mergeinfo_merge(svn_mergeinfo_t mergeinfo, svn_mergeinfo_t changes,
+svn_mergeinfo_merge2(svn_mergeinfo_t mergeinfo,
+                     svn_mergeinfo_t changes,
+                     apr_pool_t *result_pool,
+                     apr_pool_t *scratch_pool);
+
+/** Like svn_mergeinfo_merge2, but uses only one pool.
+ *
+ * @deprecated Provided for backward compatibility with the 1.5 API.
+ */
+SVN_DEPRECATED
+svn_error_t *
+svn_mergeinfo_merge(svn_mergeinfo_t mergeinfo,
+                    svn_mergeinfo_t changes,
                     apr_pool_t *pool);
 
 /** Combine one mergeinfo catalog, @a changes_catalog, into another mergeinfo
@@ -270,20 +285,38 @@ svn_rangelist_diff(apr_array_header_t **
                    apr_pool_t *pool);
 
 /** Merge two rangelists consisting of @c svn_merge_range_t *
- * elements, @a *rangelist and @a changes, placing the results in
- * @a *rangelist.  Either rangelist may be empty.
+ * elements, @a rangelist and @a changes, placing the results in
+ * @a rangelist. New elements added to @a rangelist are allocated
+ * in @a result_pool. Either rangelist may be empty.
  *
  * When intersecting rangelists are merged, the inheritability of
  * the resulting svn_merge_range_t depends on the inheritability of the
  * operands: see svn_mergeinfo_merge().
  *
- * Note: @a *rangelist and @a changes must be sorted as said by @c
- * svn_sort_compare_ranges().  @a *rangelist is guaranteed to remain
+ * Note: @a rangelist and @a changes must be sorted as said by @c
+ * svn_sort_compare_ranges().  @a rangelist is guaranteed to remain
  * in sorted order and be compacted to the minimal number of ranges
  * needed to represent the merged result.
  *
+ * Use @a scratch_pool for temporary allocations.
+ *
+ * @since New in 1.8.
+ */
+svn_error_t *
+svn_rangelist_merge2(apr_array_header_t *rangelist,
+                     const apr_array_header_t *changes,
+                     apr_pool_t *result_pool,
+                     apr_pool_t *scratch_pool);
+
+/** Like svn_rangelist_merge2(), but with @a rangelist as an input/output
+ * argument. This function always allocates a new rangelist in @a pool and
+ * returns its result in @a *rangelist. It does not modify @a *rangelist
+ * in place. If not used carefully, this function can use up a lot of memory
+ * if called in a loop.
+ *
  * @since New in 1.5.
  */
+SVN_DEPRECATED
 svn_error_t *
 svn_rangelist_merge(apr_array_header_t **rangelist,
                     const apr_array_header_t *changes,

Modified: subversion/branches/svn_mutex/subversion/include/svn_ra.h
URL: http://svn.apache.org/viewvc/subversion/branches/svn_mutex/subversion/include/svn_ra.h?rev=1182053&r1=1182052&r2=1182053&view=diff
==============================================================================
--- subversion/branches/svn_mutex/subversion/include/svn_ra.h (original)
+++ subversion/branches/svn_mutex/subversion/include/svn_ra.h Tue Oct 11 19:52:34 2011
@@ -573,7 +573,7 @@ svn_ra_create_callbacks(svn_ra_callbacks
 
 /**
  * A repository access session.  This object is used to perform requests
- * to a repository, identified by an URL.
+ * to a repository, identified by a URL.
  *
  * @since New in 1.2.
  */
@@ -1017,12 +1017,6 @@ svn_ra_get_dir(svn_ra_session_t *session
  * @a inherit indicates whether explicit, explicit or inherited, or
  * only inherited mergeinfo for @a paths is retrieved.
  *
- * If server supports the #SVN_RA_CAPABILITY_VALIDATE_INHERITED_MERGEINFO
- * capability, the mergeinfo for any path is inherited, and
- * @a validate_inherited_mergeinfo is TRUE, then request that the server
- * validate the mergeinfo in @a *catalog, so it contains only merge source
- * path-revisions that actually exist in repository.
- *
  * If @a include_descendants is TRUE, then additionally return the
  * mergeinfo for any descendant of any element of @a paths which has
  * the @c SVN_PROP_MERGEINFO property explicitly set on it.  (Note
@@ -1039,25 +1033,8 @@ svn_ra_get_dir(svn_ra_session_t *session
  * upgraded), return @c SVN_ERR_UNSUPPORTED_FEATURE in preference to
  * any other error that might otherwise be returned.
  *
- * @since New in 1.7.
- */
-svn_error_t *
-svn_ra_get_mergeinfo2(svn_ra_session_t *session,
-                      svn_mergeinfo_catalog_t *catalog,
-                      const apr_array_header_t *paths,
-                      svn_revnum_t revision,
-                      svn_mergeinfo_inheritance_t inherit,
-                      svn_boolean_t validate_inherited_mergeinfo,
-                      svn_boolean_t include_descendants,
-                      apr_pool_t *pool);
-
-/**
- * Similar to svn_ra_get_mergeinfo2(), but with
- * @a validate_inherited_mergeinfo always passed as FALSE.
- *
- * @deprecated Provided for backward compatibility with the 1.6 API.
+ * @since New in 1.5.
  */
-SVN_DEPRECATED
 svn_error_t *
 svn_ra_get_mergeinfo(svn_ra_session_t *session,
                      svn_mergeinfo_catalog_t *catalog,
@@ -1438,8 +1415,9 @@ svn_ra_do_diff(svn_ra_session_t *session
  * If @a include_merged_revisions is set, log information for revisions
  * which have been merged to @a targets will also be returned.
  *
- * If @a revprops is NULL, retrieve all revprops; else, retrieve only the
- * revprops named in the array (i.e. retrieve none if the array is empty).
+ * If @a revprops is NULL, retrieve all revision properties; else, retrieve
+ * only the revision properties named by the (const char *) array elements
+ * (i.e. retrieve none if the array is empty).
  *
  * If any invocation of @a receiver returns error, return that error
  * immediately and without wrapping it.
@@ -1695,7 +1673,8 @@ svn_ra_get_file_revs(svn_ra_session_t *s
 /**
  * Lock each path in @a path_revs, which is a hash whose keys are the
  * paths to be locked, and whose values are the corresponding base
- * revisions for each path.
+ * revisions for each path.  The keys are (const char *) and the
+ * revisions are (svn_revnum_t *).
  *
  * Note that locking is never anonymous, so any server implementing
  * this function will have to "pull" a username from the client, if
@@ -1980,15 +1959,6 @@ svn_ra_has_capability(svn_ra_session_t *
  */
 #define SVN_RA_CAPABILITY_ATOMIC_REVPROPS "atomic-revprops"
 
-/**
- * The capability of validating inherited mergeinfo in
- * svn_ra_get_mergeinfo2().
- *
- * @since New in 1.7.
- */
-#define SVN_RA_CAPABILITY_VALIDATE_INHERITED_MERGEINFO \
-  "validate-inherited-mergeinfo"
-
 /*       *** PLEASE READ THIS IF YOU ADD A NEW CAPABILITY ***
  *
  * RA layers generally fetch all capabilities when asked about any

Modified: subversion/branches/svn_mutex/subversion/include/svn_ra_svn.h
URL: http://svn.apache.org/viewvc/subversion/branches/svn_mutex/subversion/include/svn_ra_svn.h?rev=1182053&r1=1182052&r2=1182053&view=diff
==============================================================================
--- subversion/branches/svn_mutex/subversion/include/svn_ra_svn.h (original)
+++ subversion/branches/svn_mutex/subversion/include/svn_ra_svn.h Tue Oct 11 19:52:34 2011
@@ -54,9 +54,6 @@ extern "C" {
 #define SVN_RA_SVN_CAP_COMMIT_REVPROPS "commit-revprops"
 /* maps to SVN_RA_CAPABILITY_MERGEINFO: */
 #define SVN_RA_SVN_CAP_MERGEINFO "mergeinfo"
-/* maps to SVN_RA_CAPABILITY_VALIDATE_INHERITED_MERGEINFO: */
-#define SVN_RA_SVN_CAP_VALIDATE_INHERITED_MERGEINFO \
-  "validate-inherited-mergeinfo"
 /* maps to SVN_RA_CAPABILITY_DEPTH: */
 #define SVN_RA_SVN_CAP_DEPTH "depth"
 /* maps to SVN_RA_CAPABILITY_LOG_REVPROPS */