Author: stsp Date: Sat Jul 30 10:47:39 2011 New Revision: 1152447 URL: http://svn.apache.org/viewvc?rev=1152447&view=rev Log: Add a new libsvn_wc API function: svn_wc__node_was_moved_away().
* subversion/include/private/svn_wc_private.h (svn_wc__node_was_moved_away): Declare. * subversion/libsvn_wc/node.c (svn_wc__node_was_moved_away): New. Provides the MOVED_TO_ABSPATH of a node that was moved-away, as well the COPY_OP_ROOT_ABSPATH of the copy-half of the move. Modified: subversion/trunk/subversion/include/private/svn_wc_private.h subversion/trunk/subversion/libsvn_wc/node.c Modified: subversion/trunk/subversion/include/private/svn_wc_private.h URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/include/private/svn_wc_private.h?rev=1152447&r1=1152446&r2=1152447&view=diff ============================================================================== --- subversion/trunk/subversion/include/private/svn_wc_private.h (original) +++ subversion/trunk/subversion/include/private/svn_wc_private.h Sat Jul 30 10:47:39 2011 @@ -1127,6 +1127,24 @@ svn_wc__delete_internal(svn_wc_context_t 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 Modified: subversion/trunk/subversion/libsvn_wc/node.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/node.c?rev=1152447&r1=1152446&r2=1152447&view=diff ============================================================================== --- subversion/trunk/subversion/libsvn_wc/node.c (original) +++ subversion/trunk/subversion/libsvn_wc/node.c Sat Jul 30 10:47:39 2011 @@ -1795,6 +1795,33 @@ svn_wc__check_for_obstructions(svn_wc_no svn_error_t * +svn_wc__node_was_moved_away(const char **moved_to_abspath, + const char **op_root_abspath, + svn_wc_context_t *wc_ctx, + const char *local_abspath, + apr_pool_t *result_pool, + apr_pool_t *scratch_pool) +{ + svn_boolean_t is_deleted; + + if (moved_to_abspath) + *moved_to_abspath = NULL; + if (op_root_abspath) + *op_root_abspath = NULL; + + SVN_ERR(svn_wc__node_is_status_deleted(&is_deleted, wc_ctx, local_abspath, + scratch_pool)); + if (is_deleted) + SVN_ERR(svn_wc__db_scan_deletion(NULL, moved_to_abspath, NULL, + op_root_abspath, wc_ctx->db, + local_abspath, + result_pool, scratch_pool)); + + return SVN_NO_ERROR; +} + + +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,