Fix 'svn cp PATH PATH' with symlink targets, currently broken on the branch.

* include/svn_wc.h,
* subversion/libsvn_wc/adm_files.c
  (svn_wc_create_tmp_file): Deprecate. Superseeded by svn_wc_create_tmp_file2.
  (svn_wc_create_tmp_file2): New. In addition to a (now optional) file handle,
  returns the path name of the created file.

* subversion/libsvn_wc/props.h,
* subversion/libsvn_wc/props.c
  (svn_wc__has_special_property): New.  Extracted from svn_wc__get_special.

* subversion/libsvn_wc/translate.c
  (svn_wc__get_special): Implement in terms of svn_wc__has_special_property.

* subversion/libsvn_wc/log.h (SVN_WC__LOG_ATTR_ARG_1): Mark as
  (optionally) used for SVN_LOG__CP_AND_TRANSLATE and
  SVN_LOG__CP_AND_DETRANSLATE too now.

* subversion/libsvn_wc/log.c
  (file_xfer_under_path): Add a special_only argument to restrict translation.
  (log_do_file_xfer): Detect SVN_WC__LOG_ATTR_ARG_1 argument and restrict
  translation to special-only if present.

* subversion/libsvn_wc/update_editor.c
  (svn_wc_add_repos_file2): Translate special files when copying them.

* subversion/libsvn_wc/copy.c
  (copy_file_administratively): Translate (instead of copying) special files
  into their temporaries.  Also, since svn_wc_add_repos_file claims ownership
  of its arguments, give it a temporary instead of the copy-source.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/wc-replacements@856719 13f79535-47bb-0310-9956-ffa450edef68
9 files changed