Author: hwright
Date: Mon Apr 9 23:31:15 2012
New Revision: 1311519
URL: http://svn.apache.org/viewvc?rev=1311519&view=rev
Log:
Fix a few of the Ev2 shim test failures introduced last week by tracking the
repos relpath when relevant. We only actually provide a value for one instance
of the shims in this commit, but it cuts down the number of failures to 48.
* subversion/libsvn_ra_svn/editorp.c,
subversion/libsvn_repos/commit.c,
subversion/libsvn_repos/dump.c,
subversion/libsvn_wc/status.c,
subversion/libsvn_wc/diff_editor.c,
subversion/libsvn_wc/update_editor.c,
subversion/libsvn_client/export.c,
subversion/libsvn_client/repos_diff.c,
subversion/libsvn_ra_neon/commit.c,
subversion/svnrdump/dump_editor.c,
subversion/libsvn_ra_serf/commit.c:
Update various shim constructors.
* subversion/include/svn_delta.h
(svn_editor__insert_shims): Add repos_root param.
* subversion/libsvn_delta/compat.c
(editor_baton, ev2_edit_baton): Add repos_root value.
(map_to_repos_relpath): Use the repos_root to construct a repos_relpath.
(delta_from_editor, editor_from_delta): Take a repos_root, and use stash it
in the baton.
(build): Use the repos_root to construct a proper URL.
(svn_editor__insert_shims): Take a repos_root, and pass it down the stack.
Modified:
subversion/trunk/subversion/include/svn_delta.h
subversion/trunk/subversion/libsvn_client/export.c
subversion/trunk/subversion/libsvn_client/repos_diff.c
subversion/trunk/subversion/libsvn_delta/compat.c
subversion/trunk/subversion/libsvn_ra_neon/commit.c
subversion/trunk/subversion/libsvn_ra_serf/commit.c
subversion/trunk/subversion/libsvn_ra_svn/editorp.c
subversion/trunk/subversion/libsvn_repos/commit.c
subversion/trunk/subversion/libsvn_repos/dump.c
subversion/trunk/subversion/libsvn_wc/diff_editor.c
subversion/trunk/subversion/libsvn_wc/status.c
subversion/trunk/subversion/libsvn_wc/update_editor.c
subversion/trunk/subversion/svnrdump/dump_editor.c
Modified: subversion/trunk/subversion/include/svn_delta.h
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_delta.h?rev=1311519&r1=1311518&r2=1311519&view=diff
==============================================================================
--- subversion/trunk/subversion/include/svn_delta.h (original)
+++ subversion/trunk/subversion/include/svn_delta.h Mon Apr 9 23:31:15 2012
@@ -1170,6 +1170,7 @@ svn_editor__insert_shims(const svn_delta
void **dedit_baton_out,
const svn_delta_editor_t *deditor_in,
void *dedit_baton_in,
+ const char *repos_root,
svn_delta_shim_callbacks_t *shim_callbacks,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
Modified: subversion/trunk/subversion/libsvn_client/export.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/export.c?rev=1311519&r1=1311518&r2=1311519&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/export.c (original)
+++ subversion/trunk/subversion/libsvn_client/export.c Mon Apr 9 23:31:15 2012
@@ -1236,7 +1236,7 @@ svn_client_export5(svn_revnum_t *result_
SVN_ERR(svn_editor__insert_shims(&export_editor, &edit_baton,
export_editor, edit_baton,
- shim_callbacks, pool, pool));
+ NULL, shim_callbacks, pool, pool));
/* Manufacture a basic 'report' to the update reporter. */
SVN_ERR(svn_ra_do_update2(ra_session,
Modified: subversion/trunk/subversion/libsvn_client/repos_diff.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/repos_diff.c?rev=1311519&r1=1311518&r2=1311519&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/repos_diff.c (original)
+++ subversion/trunk/subversion/libsvn_client/repos_diff.c Mon Apr 9 23:31:15
2012
@@ -1464,7 +1464,7 @@ svn_client__get_diff_editor(const svn_de
shim_callbacks->fetch_baton = eb;
SVN_ERR(svn_editor__insert_shims(editor, edit_baton, *editor, *edit_baton,
- shim_callbacks,
+ NULL, shim_callbacks,
result_pool, result_pool));
return SVN_NO_ERROR;
Modified: subversion/trunk/subversion/libsvn_delta/compat.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_delta/compat.c?rev=1311519&r1=1311518&r2=1311519&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_delta/compat.c (original)
+++ subversion/trunk/subversion/libsvn_delta/compat.c Mon Apr 9 23:31:15 2012
@@ -138,6 +138,9 @@ struct ev2_edit_baton
apr_array_header_t *path_order;
int paths_processed;
+ /* For calculating relpaths from Ev1 copyfrom urls. */
+ const char *repos_root;
+
apr_pool_t *edit_pool;
struct extra_baton *exb;
svn_boolean_t closed;
@@ -624,9 +627,7 @@ map_to_repos_relpath(struct ev2_edit_bat
SVN_DBG(("repos_path='%s'\n", path_or_url));
#endif
- /* ### do something here */
-
- return path_or_url;
+ return svn_uri_skip_ancestor(eb->repos_root, path_or_url, result_pool);
}
@@ -1090,6 +1091,7 @@ delta_from_editor(const svn_delta_editor
unlock_func_t unlock_func,
void *unlock_baton,
svn_boolean_t *found_abs_paths,
+ const char *repos_root,
svn_delta_fetch_props_func_t fetch_props_func,
void *fetch_props_baton,
svn_delta_fetch_base_func_t fetch_base_func,
@@ -1126,6 +1128,7 @@ delta_from_editor(const svn_delta_editor
eb->found_abs_paths = found_abs_paths;
*eb->found_abs_paths = FALSE;
eb->exb = exb;
+ eb->repos_root = apr_pstrdup(pool, repos_root);
eb->fetch_props_func = fetch_props_func;
eb->fetch_props_baton = fetch_props_baton;
@@ -1184,6 +1187,7 @@ struct editor_baton
struct operation root;
svn_boolean_t *make_abs_paths;
+ const char *repos_root;
apr_hash_t *paths;
apr_pool_t *edit_pool;
@@ -1343,8 +1347,11 @@ build(struct editor_baton *eb,
url, rev, scratch_pool));
else
operation->kind = kind;
- operation->copyfrom_url = url;
+
operation->copyfrom_revision = rev;
+ operation->copyfrom_url = svn_path_url_add_component2(eb->repos_root,
+ url,
+ eb->edit_pool);
}
/* Handle mkdir operations (which can be adds or replacements). */
else if (action == ACTION_MKDIR)
@@ -1991,6 +1998,7 @@ editor_from_delta(svn_editor_t **editor_
const svn_delta_editor_t *deditor,
void *dedit_baton,
svn_boolean_t *send_abs_paths,
+ const char *repos_root,
svn_cancel_func_t cancel_func,
void *cancel_baton,
svn_delta_fetch_kind_func_t fetch_kind_func,
@@ -2024,6 +2032,7 @@ editor_from_delta(svn_editor_t **editor_
eb->dedit_baton = dedit_baton;
eb->edit_pool = result_pool;
eb->paths = apr_hash_make(result_pool);
+ eb->repos_root = apr_pstrdup(result_pool, repos_root);
eb->fetch_kind_func = fetch_kind_func;
eb->fetch_kind_baton = fetch_kind_baton;
@@ -2075,6 +2084,7 @@ svn_editor__insert_shims(const svn_delta
void **dedit_baton_out,
const svn_delta_editor_t *deditor_in,
void *dedit_baton_in,
+ const char *repos_root,
svn_delta_shim_callbacks_t *shim_callbacks,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
@@ -2110,7 +2120,8 @@ svn_editor__insert_shims(const svn_delta
SVN_ERR(editor_from_delta(&editor, &exb, &unlock_func, &unlock_baton,
deditor_in, dedit_baton_in,
- found_abs_paths, NULL, NULL,
+ found_abs_paths, repos_root,
+ NULL, NULL,
shim_callbacks->fetch_kind_func,
shim_callbacks->fetch_baton,
shim_callbacks->fetch_props_func,
@@ -2119,6 +2130,7 @@ svn_editor__insert_shims(const svn_delta
SVN_ERR(delta_from_editor(deditor_out, dedit_baton_out, editor,
unlock_func, unlock_baton,
found_abs_paths,
+ repos_root,
shim_callbacks->fetch_props_func,
shim_callbacks->fetch_baton,
shim_callbacks->fetch_base_func,
Modified: subversion/trunk/subversion/libsvn_ra_neon/commit.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_neon/commit.c?rev=1311519&r1=1311518&r2=1311519&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_neon/commit.c (original)
+++ subversion/trunk/subversion/libsvn_ra_neon/commit.c Mon Apr 9 23:31:15 2012
@@ -1620,7 +1620,7 @@ svn_error_t * svn_ra_neon__get_commit_ed
*edit_baton = cc;
SVN_ERR(svn_editor__insert_shims(editor, edit_baton, *editor, *edit_baton,
- ras->shim_callbacks, pool, pool));
+ NULL, ras->shim_callbacks, pool, pool));
return SVN_NO_ERROR;
}
Modified: subversion/trunk/subversion/libsvn_ra_serf/commit.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/commit.c?rev=1311519&r1=1311518&r2=1311519&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/commit.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/commit.c Mon Apr 9 23:31:15 2012
@@ -2369,7 +2369,7 @@ svn_ra_serf__get_commit_editor(svn_ra_se
*edit_baton = ctx;
SVN_ERR(svn_editor__insert_shims(ret_editor, edit_baton, *ret_editor,
- *edit_baton, session->shim_callbacks,
+ *edit_baton, NULL, session->shim_callbacks,
pool, pool));
return SVN_NO_ERROR;
Modified: subversion/trunk/subversion/libsvn_ra_svn/editorp.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_svn/editorp.c?rev=1311519&r1=1311518&r2=1311519&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_svn/editorp.c (original)
+++ subversion/trunk/subversion/libsvn_ra_svn/editorp.c Mon Apr 9 23:31:15 2012
@@ -437,7 +437,8 @@ void svn_ra_svn_get_editor(const svn_del
*edit_baton = eb;
svn_error_clear(svn_editor__insert_shims(editor, edit_baton, *editor,
- *edit_baton, conn->shim_callbacks,
+ *edit_baton, NULL,
+ conn->shim_callbacks,
pool, pool));
}
Modified: subversion/trunk/subversion/libsvn_repos/commit.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_repos/commit.c?rev=1311519&r1=1311518&r2=1311519&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_repos/commit.c (original)
+++ subversion/trunk/subversion/libsvn_repos/commit.c Mon Apr 9 23:31:15 2012
@@ -981,7 +981,7 @@ svn_repos_get_commit_editor5(const svn_d
shim_callbacks->fetch_baton = eb;
SVN_ERR(svn_editor__insert_shims(editor, edit_baton, *editor, *edit_baton,
- shim_callbacks, pool, pool));
+ eb->repos_url, shim_callbacks, pool, pool));
return SVN_NO_ERROR;
}
Modified: subversion/trunk/subversion/libsvn_repos/dump.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_repos/dump.c?rev=1311519&r1=1311518&r2=1311519&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_repos/dump.c (original)
+++ subversion/trunk/subversion/libsvn_repos/dump.c Mon Apr 9 23:31:15 2012
@@ -1009,7 +1009,7 @@ get_dump_editor(const svn_delta_editor_t
shim_callbacks->fetch_baton = eb;
SVN_ERR(svn_editor__insert_shims(editor, edit_baton, *editor, *edit_baton,
- shim_callbacks, pool, pool));
+ NULL, shim_callbacks, pool, pool));
return SVN_NO_ERROR;
}
Modified: subversion/trunk/subversion/libsvn_wc/diff_editor.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/diff_editor.c?rev=1311519&r1=1311518&r2=1311519&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/diff_editor.c (original)
+++ subversion/trunk/subversion/libsvn_wc/diff_editor.c Mon Apr 9 23:31:15 2012
@@ -1946,7 +1946,8 @@ svn_wc__get_diff_editor(const svn_delta_
SVN_ERR(svn_editor__insert_shims(editor, edit_baton, *editor, *edit_baton,
- shim_callbacks, result_pool, scratch_pool));
+ NULL, shim_callbacks,
+ result_pool, scratch_pool));
return SVN_NO_ERROR;
}
Modified: subversion/trunk/subversion/libsvn_wc/status.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/status.c?rev=1311519&r1=1311518&r2=1311519&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/status.c (original)
+++ subversion/trunk/subversion/libsvn_wc/status.c Mon Apr 9 23:31:15 2012
@@ -2588,7 +2588,7 @@ svn_wc__get_status_editor(const svn_delt
shim_callbacks->fetch_baton = sfb;
SVN_ERR(svn_editor__insert_shims(editor, edit_baton, *editor, *edit_baton,
- shim_callbacks,
+ NULL, shim_callbacks,
result_pool, scratch_pool));
return SVN_NO_ERROR;
Modified: subversion/trunk/subversion/libsvn_wc/update_editor.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/update_editor.c?rev=1311519&r1=1311518&r2=1311519&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/update_editor.c (original)
+++ subversion/trunk/subversion/libsvn_wc/update_editor.c Mon Apr 9 23:31:15
2012
@@ -4996,7 +4996,8 @@ make_editor(svn_revnum_t *target_revisio
shim_callbacks->fetch_baton = sfb;
SVN_ERR(svn_editor__insert_shims(editor, edit_baton, *editor, *edit_baton,
- shim_callbacks, result_pool, scratch_pool));
+ NULL, shim_callbacks,
+ result_pool, scratch_pool));
return SVN_NO_ERROR;
}
Modified: subversion/trunk/subversion/svnrdump/dump_editor.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/svnrdump/dump_editor.c?rev=1311519&r1=1311518&r2=1311519&view=diff
==============================================================================
--- subversion/trunk/subversion/svnrdump/dump_editor.c (original)
+++ subversion/trunk/subversion/svnrdump/dump_editor.c Mon Apr 9 23:31:15 2012
@@ -1063,7 +1063,7 @@ svn_rdump__get_dump_editor(const svn_del
shim_callbacks->fetch_baton = eb;
SVN_ERR(svn_editor__insert_shims(editor, edit_baton, *editor, *edit_baton,
- shim_callbacks, pool, pool));
+ NULL, shim_callbacks, pool, pool));
return SVN_NO_ERROR;
}