Author: breser
Date: Tue Dec 18 19:34:52 2012
New Revision: 1423594
URL: http://svn.apache.org/viewvc?rev=1423594&view=rev
Log:
On '1.7.x-issue4263' branch: Merge r1423585 from trunk.
Clean merge.
Modified:
subversion/branches/1.7.x-issue4263/ (props changed)
subversion/branches/1.7.x-issue4263/subversion/svnrdump/load_editor.c
subversion/branches/1.7.x-issue4263/subversion/svnrdump/svnrdump.h
subversion/branches/1.7.x-issue4263/subversion/svnrdump/util.c
subversion/branches/1.7.x-issue4263/subversion/tests/cmdline/svnrdump_tests.py
Propchange: subversion/branches/1.7.x-issue4263/
------------------------------------------------------------------------------
Merged /subversion/trunk:r1423585
Modified: subversion/branches/1.7.x-issue4263/subversion/svnrdump/load_editor.c
URL:
http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4263/subversion/svnrdump/load_editor.c?rev=1423594&r1=1423593&r2=1423594&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4263/subversion/svnrdump/load_editor.c
(original)
+++ subversion/branches/1.7.x-issue4263/subversion/svnrdump/load_editor.c Tue
Dec 18 19:34:52 2012
@@ -729,6 +729,8 @@ set_revision_property(void *baton,
{
struct revision_baton *rb = baton;
+ SVN_ERR(svn_rdump__normalize_prop(name, &value, rb->pool));
+
SVN_ERR(svn_repos__validate_prop(name, value, rb->pool));
if (rb->rev > 0)
@@ -808,6 +810,8 @@ set_node_property(void *baton,
}
}
+ SVN_ERR(svn_rdump__normalize_prop(name, &value, pool));
+
SVN_ERR(svn_repos__validate_prop(name, value, pool));
switch (nb->kind)
Modified: subversion/branches/1.7.x-issue4263/subversion/svnrdump/svnrdump.h
URL:
http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4263/subversion/svnrdump/svnrdump.h?rev=1423594&r1=1423593&r2=1423594&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4263/subversion/svnrdump/svnrdump.h
(original)
+++ subversion/branches/1.7.x-issue4263/subversion/svnrdump/svnrdump.h Tue Dec
18 19:34:52 2012
@@ -85,6 +85,20 @@ svn_rdump__normalize_props(apr_hash_t **
apr_hash_t *props,
apr_pool_t *result_pool);
+/* Normalize the line ending style of a single property that "needs
+ * translation" (according to svn_prop_needs_translation(),
+ * currently all svn:* props) so that they contain only LF (\n) line endings.
+ * "\r" characters found mid-line are replaced with "\n".
+ * "\r\n" sequences are replaced with "\n"
+ *
+ * NAME is used to check that VALUE should be normalized, and if this is the
+ * case, VALUE is then normalized, allocated from RESULT_POOL
+ */
+svn_error_t *
+svn_rdump__normalize_prop(const char *name,
+ const svn_string_t **value,
+ apr_pool_t *result_pool);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
Modified: subversion/branches/1.7.x-issue4263/subversion/svnrdump/util.c
URL:
http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4263/subversion/svnrdump/util.c?rev=1423594&r1=1423593&r2=1423594&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4263/subversion/svnrdump/util.c (original)
+++ subversion/branches/1.7.x-issue4263/subversion/svnrdump/util.c Tue Dec 18
19:34:52 2012
@@ -31,6 +31,25 @@
svn_error_t *
+svn_rdump__normalize_prop(const char *name,
+ const svn_string_t **value,
+ apr_pool_t *result_pool)
+{
+ if (svn_prop_needs_translation(name))
+ {
+ const char *cstring;
+
+ SVN_ERR(svn_subst_translate_cstring2((*value)->data, &cstring,
+ "\n", TRUE,
+ NULL, FALSE,
+ result_pool));
+
+ *value = svn_string_create(cstring, result_pool);
+ }
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
svn_rdump__normalize_props(apr_hash_t **normal_props,
apr_hash_t *props,
apr_pool_t *result_pool)
@@ -45,16 +64,8 @@ svn_rdump__normalize_props(apr_hash_t **
const char *key = svn__apr_hash_index_key(hi);
const svn_string_t *value = svn__apr_hash_index_val(hi);
- if (svn_prop_needs_translation(key))
- {
- const char *cstring;
-
- SVN_ERR(svn_subst_translate_cstring2(value->data, &cstring,
- "\n", TRUE,
- NULL, FALSE,
- result_pool));
- value = svn_string_create(cstring, result_pool);
- }
+ SVN_ERR(svn_rdump__normalize_prop(key, &value,
+ result_pool));
apr_hash_set(*normal_props, key, APR_HASH_KEY_STRING, value);
}
Modified:
subversion/branches/1.7.x-issue4263/subversion/tests/cmdline/svnrdump_tests.py
URL:
http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4263/subversion/tests/cmdline/svnrdump_tests.py?rev=1423594&r1=1423593&r2=1423594&view=diff
==============================================================================
---
subversion/branches/1.7.x-issue4263/subversion/tests/cmdline/svnrdump_tests.py
(original)
+++
subversion/branches/1.7.x-issue4263/subversion/tests/cmdline/svnrdump_tests.py
Tue Dec 18 19:34:52 2012
@@ -375,7 +375,6 @@ def copy_bad_line_endings_dump(sbox):
expected_dumpfile_name="copy-bad-line-endings.expected.dump",
bypass_prop_validation=True)
-@XFail()
@Issue(4263)
def copy_bad_line_endings_load(sbox):
"load: inconsistent line endings in svn:* props"