Hi All,
Attached patch fixes issue 3438.
I would like to get some review before committing.
With regards
Kamesh Jayachandran
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2366440
Fix for issue 3438.
svnsync fails while syncing a rev that has copy of '/' over ra_neon and ra_serf
* subversion/svnsync/main.c
(add_directory): Do not *uncanonicalize* the copyfrom_path if the original
copyfrom_path(relpath version) is just '/'.
* subversion/tests/cmdline/svnsync_tests.py
(test_list): Remove XFail marker on commit_a_copy_of_root.
Index: subversion/svnsync/main.c
===================================================================
--- subversion/svnsync/main.c (revision 38222)
+++ subversion/svnsync/main.c (working copy)
@@ -947,8 +947,16 @@
node_baton_t *b = apr_palloc(pool, sizeof(*b));
if (copyfrom_path)
- copyfrom_path = apr_psprintf(pool, "%s%s", eb->to_url,
- svn_path_uri_encode(copyfrom_path, pool));
+ {
+ /* if copyfrom_path is '/' do not disturb the canoncicallized url
+ * by appending '/'.
+ */
+ if (copyfrom_path[0] == '/' && copyfrom_path[1] == '\0')
+ copyfrom_path = apr_pstrdup(pool, eb->to_url);
+ else
+ copyfrom_path = apr_psprintf(pool, "%s%s", eb->to_url,
+ svn_path_uri_encode(copyfrom_path, pool));
+ }
SVN_ERR(eb->wrapped_editor->add_directory(path, pb->wrapped_node_baton,
copyfrom_path,
Index: subversion/tests/cmdline/svnsync_tests.py
===================================================================
--- subversion/tests/cmdline/svnsync_tests.py (revision 38229)
+++ subversion/tests/cmdline/svnsync_tests.py (working copy)
@@ -799,7 +799,7 @@
info_not_synchronized,
copy_bad_line_endings,
delete_svn_props,
- XFail(commit_a_copy_of_root, svntest.main.is_ra_type_dav),
+ commit_a_copy_of_root,
]
if __name__ == '__main__':
Received on 2009-06-29 18:08:14 CEST