Make 'svn patch' capable of replacing directories with files by improving the
directory delete detection.

This patch replaces the final 'can delete ancestor'-check with one that runs
after every delete. This allows an addition later on to take the place of
deleted parents.

Process the paths during the status walk step to allow to bail from the status
walker as soon as possible.

* subversion/libsvn_client/patch.c
  (resolve_target_path): Use the status output instead of a few more db calls.
    Skip conflicted nodes. Don't skip directories as there is no reason left
    why we can't replace these with WC-NG.
  (status_baton): Remove struct.
  (find_existing_children,
   check_dir_empty): Remove function.

  (can_delete_baton_t): New struct.
  (can_delete_callback): New function.
  (check_ancestor_delete): New function.

  (apply_patches): Call check_ancestor_delete after every delete instead
    of delete_empty_dirs after everything is done.

* subversion/tests/cmdline/patch_tests.py
  (patch_remove_empty_dirs): Assume that intermediate directories are also
    removed explicitly instead of silently.
  (patch_delete_and_skip): Tweak output ordering to expect the earlier delete.
  (patch_replace_dir_with_file_and_vv): New test.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1435986 13f79535-47bb-0310-9956-ffa450edef68
To close issue #3091, "Windows absolute paths in svnserve.conf" use
svn_dirent_internal_style() to parse user provided paths in two places
inside svnserve.

* subversion/svnserve/serve.c
  (load_pwdb_config,
   load_authz_config): Use svn_dirent_internal_style() instead of
     svn_dirent_canonicalize() on user provided paths.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1435988 13f79535-47bb-0310-9956-ffa450edef68