Steve Butler


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
  (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_with_tree_conflicts): Adjust accordingly.

* subversion/tests/cmdline/
  (tree_conflicts_and_obstructions): Adjust accordingly.