Author: philip
Date: Fri Oct 1 14:35:33 2010
New Revision: 1003546
URL: http://svn.apache.org/viewvc?rev=1003546&view=rev
Log:
Tweak copy to use within-a-single DB operations more often.
* subversion/libsvn_wc/wc_db.c
(cross_db_copy): Renamed from temp_cross_db_copy.
(svn_wc__db_op_copy): Adjust call to renamed function, check wcroots
to determine whether this is a cross-db copy.
Modified:
subversion/trunk/subversion/libsvn_wc/wc_db.c
Modified: subversion/trunk/subversion/libsvn_wc/wc_db.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc_db.c?rev=1003546&r1=1003545&r2=1003546&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc_db.c (original)
+++ subversion/trunk/subversion/libsvn_wc/wc_db.c Fri Oct 1 14:35:33 2010
@@ -3266,22 +3266,22 @@ svn_wc__db_repos_ensure(apr_int64_t *rep
scratch_pool));
}
-/* Temporary helper for svn_wc__db_op_copy to handle copying from one
- db to another, it becomes redundant when we centralise. */
+/* Helper for svn_wc__db_op_copy to handle copying from one db to
+ another */
static svn_error_t *
-temp_cross_db_copy(svn_wc__db_t *db,
- const char *src_abspath,
- svn_wc__db_pdh_t *src_pdh,
- const char *src_relpath,
- svn_wc__db_pdh_t *dst_pdh,
- const char *dst_relpath,
- svn_wc__db_status_t dst_status,
- svn_wc__db_kind_t kind,
- const apr_array_header_t *children,
- apr_int64_t copyfrom_id,
- const char *copyfrom_relpath,
- svn_revnum_t copyfrom_rev,
- apr_pool_t *scratch_pool)
+cross_db_copy(svn_wc__db_t *db,
+ const char *src_abspath,
+ svn_wc__db_pdh_t *src_pdh,
+ const char *src_relpath,
+ svn_wc__db_pdh_t *dst_pdh,
+ const char *dst_relpath,
+ svn_wc__db_status_t dst_status,
+ svn_wc__db_kind_t kind,
+ const apr_array_header_t *children,
+ apr_int64_t copyfrom_id,
+ const char *copyfrom_relpath,
+ svn_revnum_t copyfrom_rev,
+ apr_pool_t *scratch_pool)
{
insert_working_baton_t iwb;
svn_revnum_t changed_rev;
@@ -3626,7 +3626,7 @@ svn_wc__db_op_copy(svn_wc__db_t *db,
op_depth = 2; /* ### temporary op_depth */
- if (!strcmp(src_pdh->local_abspath, dst_pdh->local_abspath))
+ if (src_pdh->wcroot == dst_pdh->wcroot)
{
svn_sqlite__stmt_t *stmt;
const char *dst_parent_relpath = svn_relpath_dirname(dst_relpath,
@@ -3698,11 +3698,11 @@ svn_wc__db_op_copy(svn_wc__db_t *db,
}
else
{
- SVN_ERR(temp_cross_db_copy(db, src_abspath, src_pdh, src_relpath,
- dst_pdh, dst_relpath, dst_status,
- kind, children,
- copyfrom_id, copyfrom_relpath, copyfrom_rev,
- scratch_pool));
+ SVN_ERR(cross_db_copy(db, src_abspath, src_pdh, src_relpath,
+ dst_pdh, dst_relpath, dst_status,
+ kind, children,
+ copyfrom_id, copyfrom_relpath, copyfrom_rev,
+ scratch_pool));
}
/* ### Should do this earlier and insert the node with the right values. */