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 */