To fix issue #4288, detect obstructions when opening nodes for updating.
Continue processing property changes and the pristine text (And children),
but don't touch the in-wc node.

* subversion/libsvn_wc/update_editor.c
  (dir_baton): Add edit_obstructed boolean.
  (make_dir_baton): Handle as shadowed below an obstruction.

  (file_baton): Add edit_obstructed boolean.
  (make_file_baton): Handle as shadowed below an obstruction.

  (modcheck_baton_t): Remove variables.
  (modcheck_callback): Remove unused child-of-copy handling. Handle missing
    and obstructed as a local change.
  (node_has_local_mods): Remove unused flag.

  (check_tree_conflict): Add expected kind argument. Compare in-wc kind for
    status normal-edit processing. Update caller.

  (delete_entry): Update caller. Handle obstructed. Handle parent is
    obstructed.

  (add_directory): Update caller. Fix reference in comment. Use same notify for
    exists as file.
  (open_directory): Update caller. Handle new conflict type.
  (close_directory): Handle edit_obstructed.

  (add_file): Update caller.
  (open_file): Update caller. Handle new conflict type.
  (merge_file): Add edit_obstructed to assertion.
  (close_file): Handle edit_obstructed.

* subversion/tests/cmdline/update_tests.py
  (update_replace_obstruction): Rename test to...
  (update_edit_delete_obstruction): ... this, remove XFail and fill in the
    expected results. Add obstructions that are just modified.


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