Log Message: |
Simplify the ra_serf proppatch code quite a bit by avoiding the three levels
deep nested generic hash for temporarily recording property changes during
commit processing.
This accidentally hides an issue that Julian is working on (which currently
makes the bots red), but it does this by making serf more like the other ra
layers; not by resolving the actual problem in svnrdump.
* subversion/libsvn_ra_serf/commit.c
(proppatch_context_t): Use two hashes instead of 4 3-levels-nested hashes.
(dir_context_t
file_context_t): Use simplified hash for recording propchanges.
(walker_baton_t): Remove struct.
(derive_old_val): Remove function.
(proppatch_walker): Rename to...
(write_prop_xml): ... this. Calculate wire property name here.
(create_proppatch_body): Call write_prop_xml() for all properties
instead of using the old walker.
(open_root): Update baton initialization. Simplify initial proppatch.
(add_directory,
open_directory): Update baton init.
(change_dir_prop): Simplify.
(close_directory): Update caller. No need to pass lock tokens.
(add_file,
open_file): Update baton init.
(change_file_prop): Simplify.
(close_file): Update caller.
(svn_ra_serf__change_rev_prop): Use simplified logic.
* subversion/libsvn_ra_serf/property.c
(svn_ra_serf__set_prop): Remove function.
(svn_ra_serf__walk_all_props): Rename to...
(walk_all_props): ... this and make static.
(svn_ra_serf__select_revprops): Update caller.
* subversion/libsvn_ra_serf/ra_serf.h
(svn_ra_serf__walk_all_props): Remove function.
(svn_ra_serf__set_prop): Remove function.
* subversion/tests/cmdline/svnrdump_tests.py
(load_non_deltas_copy_with_props,
load_non_deltas_replace_copy_with_props,
load_non_deltas_with_props): Remove dav specific XFail.
|