You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by rh...@apache.org on 2014/01/28 13:42:04 UTC
svn commit: r1562052 - in /subversion/trunk: build.conf
subversion/include/svn_client.h subversion/include/svn_client_mtcc.h
subversion/libsvn_client/mtcc.c subversion/svnmucc/svnmucc.c
subversion/tests/libsvn_client/mtcc-test.c
Author: rhuijben
Date: Tue Jan 28 12:42:04 2014
New Revision: 1562052
URL: http://svn.apache.org/r1562052
Log:
Extract the mtcc public api to its own header.
* build.conf
(libsvn_client): Export functions in svn_client_mtcc.h.
* subversion/include/svn_client.h
(svn_client_mtcc_t,
svn_client_mtcc_create,
svn_client_mtcc_add_add_file,
svn_client_mtcc_add_copy,
svn_client_mtcc_add_delete,
svn_client_mtcc_add_mkdir,
svn_client_mtcc_add_move,
svn_client_mtcc_add_propset,
svn_client_mtcc_add_update_file,
svn_client_mtcc_check_path,
svn_client_mtcc_commit): Move to svn_client_mtcc.h
* subversion/include/svn_client_mtcc.h
New header.
* subversion/libsvn_client/mtcc.c
(includes): Add svn_client_mtcc.h.
* subversion/svnmucc/svnmucc.c
(includes): Add svn_client_mtcc.h. Remove a few unused headers.
* subversion/tests/libsvn_client/mtcc-test.c
(SVN_DEPRECATED): Remove unneeded define.
(includes): Add svn_client_mtcc.h and remove a few unused headers.
Added:
subversion/trunk/subversion/include/svn_client_mtcc.h (with props)
Modified:
subversion/trunk/build.conf
subversion/trunk/subversion/include/svn_client.h
subversion/trunk/subversion/libsvn_client/mtcc.c
subversion/trunk/subversion/svnmucc/svnmucc.c
subversion/trunk/subversion/tests/libsvn_client/mtcc-test.c
Modified: subversion/trunk/build.conf
URL: http://svn.apache.org/viewvc/subversion/trunk/build.conf?rev=1562052&r1=1562051&r2=1562052&view=diff
==============================================================================
--- subversion/trunk/build.conf (original)
+++ subversion/trunk/build.conf Tue Jan 28 12:42:04 2014
@@ -248,7 +248,7 @@ type = lib
path = subversion/libsvn_client
libs = libsvn_wc libsvn_ra libsvn_delta libsvn_diff libsvn_subr apriconv apr
install = lib
-msvc-export = svn_client.h private/svn_client_private.h
+msvc-export = svn_client.h svn_client_mtcc.h private/svn_client_private.h
# Routines for binary diffing and tree-deltas
[libsvn_delta]
Modified: subversion/trunk/subversion/include/svn_client.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_client.h?rev=1562052&r1=1562051&r2=1562052&view=diff
==============================================================================
--- subversion/trunk/subversion/include/svn_client.h (original)
+++ subversion/trunk/subversion/include/svn_client.h Tue Jan 28 12:42:04 2014
@@ -6653,189 +6653,6 @@ svn_client_open_ra_session(svn_ra_sessio
/** @} end group: Client session related functions */
-/**
- *
- * @defgroup clnt_mtcc Multi Command Context related functions
- *
- * @{
- *
- */
-
-/** This is a structure which stores a list of repository commands
- * that can be played to a repository as a single operation
- *
- * Use svn_client_mtcc_create() to create instances
- *
- * @since New in 1.9.
- */
-typedef struct svn_client_mtcc_t svn_client_mtcc_t;
-
-/** Creates a new multicommand context for an operation on @a anchor_url and
- * its descendants.
- *
- * Allocate the context in @a result_pool and perform temporary allocations in
- * @a scratch_pool.
- *
- * @since New in 1.9.
- */
-svn_error_t *
-svn_client_mtcc_create(svn_client_mtcc_t **mtcc,
- const char *anchor_url,
- svn_revnum_t base_revision,
- svn_client_ctx_t *ctx,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool);
-
-/** Adds a file add operation of @a relpath to @a mtcc. If @a src_checksum
- * is not null it will be provided to the repository to verify if the file
- * was transfered succesfull.
- *
- * Perform temporary allocations in @a scratch_pool.
- *
- * @note The current implementation keeps @a src_stream open until @a mtcc
- * is committed.
- *
- * @since New in 1.9.
- */
-svn_error_t *
-svn_client_mtcc_add_add_file(const char *relpath,
- svn_stream_t *src_stream,
- const svn_checksum_t *src_checksum,
- svn_client_mtcc_t *mtcc,
- apr_pool_t *scratch_pool);
-
-/** Adds a copy operation of the node @a src_relpath at revision @a revision
- * to @a dst_relpath to @a mtcc.
- *
- * Perform temporary allocations in @a scratch_pool.
- *
- * @since New in 1.9.
- */
-svn_error_t *
-svn_client_mtcc_add_copy(const char *src_relpath,
- svn_revnum_t revision,
- const char *dst_relpath,
- svn_client_mtcc_t *mtcc,
- apr_pool_t *scratch_pool);
-
-/** Adds a delete of @a relpath to @a mtcc.
- *
- * Perform temporary allocations in @a scratch_pool.
- *
- * @since New in 1.9.
- */
-svn_error_t *
-svn_client_mtcc_add_delete(const char *relpath,
- svn_client_mtcc_t *mtcc,
- apr_pool_t *scratch_pool);
-
-/** Adds an mkdir operation of @a relpath to @a mtcc.
- *
- * Perform temporary allocations in @a scratch_pool.
- *
- * @since New in 1.9.
- */
-svn_error_t *
-svn_client_mtcc_add_mkdir(const char *relpath,
- svn_client_mtcc_t *mtcc,
- apr_pool_t *scratch_pool);
-
-
-/** Adds a move operation of the node @a src_relpath to @a dst_relpath to
- * @a mtcc.
- *
- * Perform temporary allocations in @a scratch_pool.
- *
- * @since New in 1.9.
- */
-svn_error_t *
-svn_client_mtcc_add_move(const char *src_relpath,
- const char *dst_relpath,
- svn_client_mtcc_t *mtcc,
- apr_pool_t *scratch_pool);
-
-/** Adds a propset operation for the property @a propname to @a propval
- * (which can be NULL for a delete) on @a relpath to @a mtcc.
- *
- * If @a skip_checks is not FALSE Subversion defined properties are verified
- * for correctness like svn_client_propset_remote()
- *
- * Perform temporary allocations in @a scratch_pool.
- *
- * @since New in 1.9.
- */
-svn_error_t *
-svn_client_mtcc_add_propset(const char *relpath,
- const char *propname,
- const svn_string_t *propval,
- svn_boolean_t skip_checks,
- svn_client_mtcc_t *mtcc,
- apr_pool_t *scratch_pool);
-
-
-/** Adds an update file operation for @a relpath to @a mtcc.
- *
- * The final version of the file is provided with @a src_stream. If @a
- * src_checksum is provided it will be provided to the repository to verify
- * the final result.
- *
- * If @a base_checksum is provided it will be used by the repository to verify
- * if the base file matches this checksum.
- *
- * If @a base_stream is not NULL only the binary diff from @a base_stream to
- * @a src_stream is written to the repository.
- *
- * Perform temporary allocations in @a scratch_pool.
- *
- * @note Callers should assume that the mtcc requires @a src_stream and @a
- * base_stream to be valid until @a mtcc is committed.
- *
- * @since New in 1.9.
- */
-svn_error_t *
-svn_client_mtcc_add_update_file(const char *relpath,
- svn_stream_t *src_stream,
- const svn_checksum_t *src_checksum,
- svn_stream_t *base_stream,
- const svn_checksum_t *base_checksum,
- svn_client_mtcc_t *mtcc,
- apr_pool_t *scratch_pool);
-
-/** Obtains the kind of node at @a relpath in the current state of @a mtcc.
- * This value might be from the cache (in case of modifications, copies)
- * or fetched from the repository.
- *
- * If @a check_repository is TRUE, verify the node type with the repository at
- * least once and cache the result for further checks.
- *
- * When a node does not exist this functions sets @a *kind to @c svn_node_node.
- *
- * @since New in 1.9.
- */
-svn_error_t *
-svn_client_mtcc_check_path(svn_node_kind_t *kind,
- const char *relpath,
- svn_boolean_t check_repository,
- svn_client_mtcc_t *mtcc,
- apr_pool_t *scratch_pool);
-
-/** Commits all operations stored in @a mtcc as a new revision and destroys
- * @a mtcc.
- *
- * @since New in 1.9.
- */
-svn_error_t *
-svn_client_mtcc_commit(apr_hash_t *revprop_table,
- svn_commit_callback2_t commit_callback,
- void *commit_baton,
- svn_client_mtcc_t *mtcc,
- apr_pool_t *scratch_pool);
-
-
-/** @} end group: Multi Command Context related functions */
-
-
-
/** @} */
#ifdef __cplusplus
Added: subversion/trunk/subversion/include/svn_client_mtcc.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_client_mtcc.h?rev=1562052&view=auto
==============================================================================
--- subversion/trunk/subversion/include/svn_client_mtcc.h (added)
+++ subversion/trunk/subversion/include/svn_client_mtcc.h Tue Jan 28 12:42:04 2014
@@ -0,0 +1,226 @@
+/**
+ * @copyright
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ * @endcopyright
+ *
+ * @file svn_client_mtcc.h
+ * @brief Subversion multicommand client support
+ *
+ * Requires: The working copy library and client library.
+ * Provides: High level multicommand api.
+ * Used By: Client programs, svnmucc.
+ */
+
+#ifndef SVN_CLIENT_MTCC_H
+#define SVN_CLIENT_MTCC_H
+
+#include "svn_client.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/**
+ *
+ * @defgroup clnt_mtcc Multi Command Context related functions
+ *
+ * @{
+ *
+ */
+
+/** This is a structure which stores a list of repository commands
+ * that can be played to a repository as a single operation
+ *
+ * Use svn_client_mtcc_create() to create instances
+ *
+ * @since New in 1.9.
+ */
+typedef struct svn_client_mtcc_t svn_client_mtcc_t;
+
+/** Creates a new multicommand context for an operation on @a anchor_url and
+ * its descendants.
+ *
+ * Allocate the context in @a result_pool and perform temporary allocations in
+ * @a scratch_pool.
+ *
+ * @since New in 1.9.
+ */
+svn_error_t *
+svn_client_mtcc_create(svn_client_mtcc_t **mtcc,
+ const char *anchor_url,
+ svn_revnum_t base_revision,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/** Adds a file add operation of @a relpath to @a mtcc. If @a src_checksum
+ * is not null it will be provided to the repository to verify if the file
+ * was transfered succesfull.
+ *
+ * Perform temporary allocations in @a scratch_pool.
+ *
+ * @note The current implementation keeps @a src_stream open until @a mtcc
+ * is committed.
+ *
+ * @since New in 1.9.
+ */
+svn_error_t *
+svn_client_mtcc_add_add_file(const char *relpath,
+ svn_stream_t *src_stream,
+ const svn_checksum_t *src_checksum,
+ svn_client_mtcc_t *mtcc,
+ apr_pool_t *scratch_pool);
+
+/** Adds a copy operation of the node @a src_relpath at revision @a revision
+ * to @a dst_relpath to @a mtcc.
+ *
+ * Perform temporary allocations in @a scratch_pool.
+ *
+ * @since New in 1.9.
+ */
+svn_error_t *
+svn_client_mtcc_add_copy(const char *src_relpath,
+ svn_revnum_t revision,
+ const char *dst_relpath,
+ svn_client_mtcc_t *mtcc,
+ apr_pool_t *scratch_pool);
+
+/** Adds a delete of @a relpath to @a mtcc.
+ *
+ * Perform temporary allocations in @a scratch_pool.
+ *
+ * @since New in 1.9.
+ */
+svn_error_t *
+svn_client_mtcc_add_delete(const char *relpath,
+ svn_client_mtcc_t *mtcc,
+ apr_pool_t *scratch_pool);
+
+/** Adds an mkdir operation of @a relpath to @a mtcc.
+ *
+ * Perform temporary allocations in @a scratch_pool.
+ *
+ * @since New in 1.9.
+ */
+svn_error_t *
+svn_client_mtcc_add_mkdir(const char *relpath,
+ svn_client_mtcc_t *mtcc,
+ apr_pool_t *scratch_pool);
+
+
+/** Adds a move operation of the node @a src_relpath to @a dst_relpath to
+ * @a mtcc.
+ *
+ * Perform temporary allocations in @a scratch_pool.
+ *
+ * @since New in 1.9.
+ */
+svn_error_t *
+svn_client_mtcc_add_move(const char *src_relpath,
+ const char *dst_relpath,
+ svn_client_mtcc_t *mtcc,
+ apr_pool_t *scratch_pool);
+
+/** Adds a propset operation for the property @a propname to @a propval
+ * (which can be NULL for a delete) on @a relpath to @a mtcc.
+ *
+ * If @a skip_checks is not FALSE Subversion defined properties are verified
+ * for correctness like svn_client_propset_remote()
+ *
+ * Perform temporary allocations in @a scratch_pool.
+ *
+ * @since New in 1.9.
+ */
+svn_error_t *
+svn_client_mtcc_add_propset(const char *relpath,
+ const char *propname,
+ const svn_string_t *propval,
+ svn_boolean_t skip_checks,
+ svn_client_mtcc_t *mtcc,
+ apr_pool_t *scratch_pool);
+
+
+/** Adds an update file operation for @a relpath to @a mtcc.
+ *
+ * The final version of the file is provided with @a src_stream. If @a
+ * src_checksum is provided it will be provided to the repository to verify
+ * the final result.
+ *
+ * If @a base_checksum is provided it will be used by the repository to verify
+ * if the base file matches this checksum.
+ *
+ * If @a base_stream is not NULL only the binary diff from @a base_stream to
+ * @a src_stream is written to the repository.
+ *
+ * Perform temporary allocations in @a scratch_pool.
+ *
+ * @note Callers should assume that the mtcc requires @a src_stream and @a
+ * base_stream to be valid until @a mtcc is committed.
+ *
+ * @since New in 1.9.
+ */
+svn_error_t *
+svn_client_mtcc_add_update_file(const char *relpath,
+ svn_stream_t *src_stream,
+ const svn_checksum_t *src_checksum,
+ svn_stream_t *base_stream,
+ const svn_checksum_t *base_checksum,
+ svn_client_mtcc_t *mtcc,
+ apr_pool_t *scratch_pool);
+
+/** Obtains the kind of node at @a relpath in the current state of @a mtcc.
+ * This value might be from the cache (in case of modifications, copies)
+ * or fetched from the repository.
+ *
+ * If @a check_repository is TRUE, verify the node type with the repository at
+ * least once and cache the result for further checks.
+ *
+ * When a node does not exist this functions sets @a *kind to @c svn_node_node.
+ *
+ * @since New in 1.9.
+ */
+svn_error_t *
+svn_client_mtcc_check_path(svn_node_kind_t *kind,
+ const char *relpath,
+ svn_boolean_t check_repository,
+ svn_client_mtcc_t *mtcc,
+ apr_pool_t *scratch_pool);
+
+/** Commits all operations stored in @a mtcc as a new revision and destroys
+ * @a mtcc.
+ *
+ * @since New in 1.9.
+ */
+svn_error_t *
+svn_client_mtcc_commit(apr_hash_t *revprop_table,
+ svn_commit_callback2_t commit_callback,
+ void *commit_baton,
+ svn_client_mtcc_t *mtcc,
+ apr_pool_t *scratch_pool);
+
+
+/** @} end group: Multi Command Context related functions */
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* SVN_CLIENT_MTCC_H */
Propchange: subversion/trunk/subversion/include/svn_client_mtcc.h
------------------------------------------------------------------------------
svn:eol-style = native
Modified: subversion/trunk/subversion/libsvn_client/mtcc.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/mtcc.c?rev=1562052&r1=1562051&r2=1562052&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/mtcc.c (original)
+++ subversion/trunk/subversion/libsvn_client/mtcc.c Tue Jan 28 12:42:04 2014
@@ -29,6 +29,9 @@
#include "svn_pools.h"
#include "svn_subst.h"
+#include "svn_client_mtcc.h"
+
+
#include "svn_private_config.h"
#include "client.h"
Modified: subversion/trunk/subversion/svnmucc/svnmucc.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svnmucc/svnmucc.c?rev=1562052&r1=1562051&r2=1562052&view=diff
==============================================================================
--- subversion/trunk/subversion/svnmucc/svnmucc.c (original)
+++ subversion/trunk/subversion/svnmucc/svnmucc.c Tue Jan 28 12:42:04 2014
@@ -43,21 +43,19 @@
#include "svn_private_config.h"
#include "svn_hash.h"
#include "svn_client.h"
+#include "svn_client_mtcc.h"
#include "svn_cmdline.h"
#include "svn_config.h"
#include "svn_error.h"
#include "svn_path.h"
#include "svn_pools.h"
#include "svn_props.h"
-#include "svn_ra.h"
#include "svn_string.h"
#include "svn_subst.h"
#include "svn_utf.h"
#include "svn_version.h"
#include "private/svn_cmdline_private.h"
-#include "private/svn_ra_private.h"
-#include "private/svn_string_private.h"
/* Version compatibility check */
static svn_error_t *
Modified: subversion/trunk/subversion/tests/libsvn_client/mtcc-test.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/libsvn_client/mtcc-test.c?rev=1562052&r1=1562051&r2=1562052&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/libsvn_client/mtcc-test.c (original)
+++ subversion/trunk/subversion/tests/libsvn_client/mtcc-test.c Tue Jan 28 12:42:04 2014
@@ -21,15 +21,10 @@
* ====================================================================
*/
-#define SVN_DEPRECATED
-
-#include "svn_mergeinfo.h"
#include "svn_pools.h"
#include "svn_props.h"
#include "svn_client.h"
-#include "svn_repos.h"
-#include "svn_subst.h"
-#include "private/svn_wc_private.h"
+#include "svn_client_mtcc.h"
#include "../svn_test.h"
#include "../svn_test_fs.h"