Switch the pristine file install code in libsvn_wc to using the recently added
install streams.

On Windows these streams avoid opening and closing the same file a few times,
which avoids influence from outside processes such as indexers and
virusscanners on the intermediate operations. In many corporate environments
with strict on access virusscanners (as well as on network drives) this
will hugely improve checkout times.

* subversion/include/private/svn_io_private.h
  (svn_stream__install_delete,
   svn_stream__install_get_info): New functions.

* subversion/libsvn_subr/stream.c
  (svn_stream__install_get_info,
   svn_stream__install_delete): New function.

* subversion/libsvn_wc/adm_crawler.c
  (svn_wc__internal_transmit_text_deltas): Update caller.

* subversion/libsvn_wc/externals.c
  (edit_baton): Store install data instead of path.
  (apply_textdelta,
   close_file): Update caller.

* subversion/libsvn_wc/update_editor.c
  (handler_baton): Add install data.
  (window_handler): Update caller. Remove now unused variable.
  (lazy_open_target): Update caller.
  (apply_textdelta): Pass final path for error information instead of the now
    completely hidden intermediate path.
  (svn_wc_add_repos_file4): Update caller. Extract local file handling.
    Remove obsolete comment.

* subversion/libsvn_wc/wc_db.h
  (svn_wc__db_install_data_t): New struct.
  (svn_wc__db_pristine_prepare_install): Update output state.
  (svn_wc__db_pristine_install): Use baton for input.
  (svn_wc__db_pristine_install_abort): New function.

* subversion/libsvn_wc/wc_db_pristine.c
  (includes): Add svn_io.h and private/svn_io_private.h
  (pristine_install_txn): Use install stream to avoid opening the files
    many times.
  (svn_wc__db_install_data_t): New struct.
  (svn_wc__db_pristine_prepare_install): Initialize svn_wc__db_install_data_t.

  (svn_wc__db_pristine_install): Install file using install stream.
  (svn_wc__db_pristine_install_abort): New function.

* subversion/tests/libsvn_wc/pristine-store-test.c
  (pristine_write_read,
   pristine_delete_while_open,
   reject_mismatching_text): Update caller.


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