You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ph...@apache.org on 2015/01/22 15:59:43 UTC

svn commit: r1653893 - /subversion/trunk/subversion/libsvn_subr/io.c

Author: philip
Date: Thu Jan 22 14:59:42 2015
New Revision: 1653893

URL: http://svn.apache.org/r1653893
Log:
* subversion/libsvn_subr/io.c
  (svn_io_remove_file2): Ensure Windows does not return an ENOENT error
   when ignore_enoent is set and the retry loop is triggered.

Modified:
    subversion/trunk/subversion/libsvn_subr/io.c

Modified: subversion/trunk/subversion/libsvn_subr/io.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/io.c?rev=1653893&r1=1653892&r2=1653893&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/io.c (original)
+++ subversion/trunk/subversion/libsvn_subr/io.c Thu Jan 22 14:59:42 2015
@@ -2495,7 +2495,12 @@ svn_io_remove_file2(const char *path,
     }
 #endif
 
-  if (apr_err)
+  /* On Windows EACCESS at the start could be followed by ENOENT from
+     the retry so repeat the ignore_enoent check. */
+  if (apr_err
+      && !(ignore_enoent
+           && (APR_STATUS_IS_ENOENT(apr_err)
+               || SVN__APR_STATUS_IS_ENOTDIR(apr_err))))
     return svn_error_wrap_apr(apr_err, _("Can't remove file '%s'"),
                               svn_dirent_local_style(path, scratch_pool));