Follow-up to r28529: Use correct functions to canonicalize paths. At least this fixes the following problem: applying a patch with file deletions results in these files are missing. Index: src/SVN/SVNPatch.cpp =================================================================== --- src/SVN/SVNPatch.cpp (revision 29343) +++ src/SVN/SVNPatch.cpp (working copy) @@ -317,7 +317,7 @@ svn_error_clear(svn_client_create_context2(&ctx, SVNConfig::Instance().GetConfig(m_pool), scratchPool)); const char* patchAbspath = nullptr; - err = svn_uri_canonicalize_safe(&patchAbspath, nullptr, + err = svn_dirent_canonicalize_safe(&patchAbspath, nullptr, CUnicodeUtils::GetUTF8(m_patchFile), scratchPool, scratchPool); if (err) @@ -329,7 +329,7 @@ } const char* localAbspath = nullptr; - err = svn_uri_canonicalize_safe(&localAbspath, nullptr, + err = svn_dirent_canonicalize_safe(&localAbspath, nullptr, CUnicodeUtils::GetUTF8(m_targetPath), scratchPool, scratchPool); if (err) @@ -587,7 +587,7 @@ apr_array_header_t* targets = apr_array_make(scratchPool, 1, sizeof(const char*)); const char* canonicalizedPath = nullptr; - svn_error_clear(svn_uri_canonicalize_safe(&canonicalizedPath, nullptr, CUnicodeUtils::GetUTF8(path), scratchPool, scratchPool)); + svn_error_clear(svn_dirent_canonicalize_safe(&canonicalizedPath, nullptr, CUnicodeUtils::GetUTF8(path), scratchPool, scratchPool)); if (canonicalizedPath == nullptr) { apr_pool_destroy(scratchPool);