Fix failure to raise a distinct tree-conflict that is a sibling of another tree-conflict raised in the same run: Do not defer tree-conflicts via the log but record them immediately.
* subversion/libsvn_wc/update_editor.c (check_tree_conflict): Rename to check_and_store_tree_conflict(). (check_and_store_tree_conflict): Renamed from check_tree_conflict(), because this function now stores a tree-conflict in the working copy immediately. Remove the LOG_ACCUM argument. Cosmetic change: initialize the return value further up. (do_entry_deletion, add_directory, open_directory, add_file, open_file): Apply rename and functional change from check_tree_conflict() to check_and_store_tree_conflict().
* subversion/tests/cmdline/depth_tests.py (make_depth_tree_conflicts): Fix some dumb mis-expectations that still remain after above fixes are applied. (tree_conflicts_resolved_depth_immediates, tree_conflicts_resolved_depth_infinity): Change output expectation line arrays to UnorderedOutput. (test_list): Do not XFail tests tree_conflicts_resolved_depth_* since the bug is now fixed and make_depth_tree_conflicts() now works.
* subversion/libsvn_wc/adm_ops.c (resolve_conflict_on_entry): Do not clear tree conflicts that are recorded in this entry. Do not send a notification, but instead report (through a new boolean output parameter) whether something was resolved. (resolve_found_entry_callback): Resolve any tree conflict for this victim. Send a notification if any conflict was resolved. (svn_wc_resolved_conflict4): Use an entries-walker function that visits unversioned tree conflict victims as well as ordinary entries.
Allow sched-deleted nodes to be resolved (fixes update_tests.py 15).
* subversion/libsvn_wc/adm_ops.c (resolve_found_entry_callback): Allow sched-deleted nodes to be resolved.
* subversion/libsvn_wc/entries.c (visit_tc_too_found_entry): Only try to retrieve the ADM_ACCESS in presence of tree-conflicts. (visit_tc_too_error_handler): Get the ADM_ACCESS on the parent instead of on the node itself, thus avoid an error upon an unversioned tree-conflict victim. ### TODO: check for greater subdir depths.
Fix a crash in del_tree_conflict().
* subversion/libsvn_wc/tree_conflicts.c (svn_wc__del_tree_conflict): Only write and run the log if LOG_ACCUM is not NULL.
Fix per-victim "resolved" on directory tree-conflict victims.
* subversion/libsvn_client/resolved.c (svn_client_resolve): Get the ADM_ACCESS on the target's parent directory to be able to resolve tree-conflicted directories. Extend the ADM_LOCK_LEVEL to still be able to lock the target node for text/prop conflicts.
* subversion/libsvn_wc/adm_ops.c (resolve_found_entry_callback): Completely split tree-conflict resolution from text and prop conflicts, because tree-conflicts need a different ADM_ACCESS when handling directories. Change use of RESOLVED to already reflect the sanity-check, and sanity-check separately for tree-conflicts. Clarify some conditions. Also remove the debugging conditions that exited prematurely.
* subversion/libsvn_wc/tree_conflicts.c (svn_wc__loggy_del_tree_conflict): Extend an assertion by a NULL check. Add another assertion to make sure the VICTIM_PATH is a child node of the ADM_ACCESS' path.
* subversion/libsvn_wc/tree_conflicts.h (svn_wc__loggy_add_tree_conflict, svn_wc__loggy_del_tree_conflict, svn_wc__del_tree_conflict, svn_wc__write_tree_conflicts_to_entry, svn_wc__tree_conflict_exists): Comments, add "@since New in 1.6.".
Fix the behaviour of "resolved" that descends into unversioned tree-conflicts even if the depth doesn't allow that.
* subversion/libsvn_wc/entries.c (visit_tc_too_baton_t): Add TARGET and DEPTH fields. (visit_tc_too_found_entry): Use new TARGET and DEPTH fields in the baton to determine whether to descend into unversioned tree-conflicted children of a directory. (svn_wc__walk_entries_and_tc): Supply TARGET and DEPTH to the baton.
* subversion/tests/cmdline/commit_tests.py (tree_conflicts_resolved): Adjust for resolving per victim.
* subversion/tests/cmdline/depth_tests.py (tree_conflicts_resolved_depth_empty, tree_conflicts_resolved_depth_files, tree_conflicts_resolved_depth_immediates, tree_conflicts_resolved_depth_infinity, make_depth_tree_conflicts): Four new tests and a helper. The tests are XFAIL because the helper make_depth_tree_conflicts() exposes an error in update code that is not related to "resolved". Separate trials suggest that these tests will pass as soon as the update issue is resolved. See inline comment in make_depth_tree_conflicts() marked "##". (test_list): Add the new tests.
* subversion/tests/cmdline/log_tests.py (merge_history_repos): Resolve the victim, not the parent.
* subversion/tests/cmdline/tree_conflict_tests.py (ensure_tree_conflict): Resolve the victim, not the parent. Make a "resolved" test also try run "resolved" on the victim's parent first, to make sure it doesn't resolve its children. Remove comment about not supporting "resolved" per victim.
* subversion/tests/cmdline/update_tests.py (another_hudson_problem): Resolve the victim, not the parent.