r33620 | julianfoad | 2008-10-13 16:56:30 -0500 (Mon, 13 Oct 2008)
Make "svn info" report a tree conflict on the victim, rather than on the
parent directory. Enable "svn info" to report on an unversioned item that
is the victim of a tree conflict, to support the cases where "merge" tries
to modify an item that is not present in the target.
Patch by: me
Steve Butler
* subversion/libsvn_wc/tree_conflicts.c
(svn_wc_get_tree_conflict): Support getting the conflict info from the
parent dir of the victim.
* subversion/include/svn_wc.h
(svn_wc_get_tree_conflict): Add a boolean arg for new parent-dir option.
* subversion/libsvn_wc/status.c
(assemble_status): Track changed svn_wc_get_tree_conflict declaration.
* subversion/include/svn_client.h
(svn_info_t): Replace the 'tree_conflicts' array with a single
'tree_conflict' pointer.
* subversion/libsvn_client/info.c
(build_info_from_dirent): Initialize 'tree_conflict' instead of
'tree_conflicts'.
(found_entry_baton): Add an 'adm_access' field.
(build_info_from_entry): Don't fill in the tree conflict info here, because
we don't have the required adm_access baton...
(info_found_entry_callback): ... but fill it in here instead,
(crawl_entries): Store the adm_access of the root directory of the crawl.
(info_error_handler): New function.
(entry_walk_callbacks): Use the new handler function.
(build_info_for_unversioned): New helper function.
* subversion/svn/info-cmd.c
(print_info_xml, print_info): Print just the one tree conflict that is now
in the info structure, rather than an array of conflicts. In
print_info_xml, remove restriction that revnum must be valid.
* subversion/svn/schema/info.rnc
Remove the 'tree-conflicts' wrapper element, as there can now be only one
tree conflict reported per node.
* subversion/tests/cmdline/info_tests.py
(info_with_tree_conflicts): Adjust accordingly.
* subversion/tests/cmdline/merge_tests.py
(tree_conflicts_and_obstructions): Adjust accordingly.