subversion-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Philip Martin <philip.mar...@wandisco.com>
Subject Re: svn commit: r1682265 - /subversion/trunk/subversion/libsvn_fs_fs/util.c
Date Thu, 28 May 2015 17:11:48 GMT
Ivan Zhakov <ivan@visualsvn.com> writes:

> 1. Make svn_io_file_name() consistently return error for cross volume
> renames by fixing APR or using platform specific code.
> 2. For all platforms handle APR_STATUS_IS_EXDEV() like this: copy file
> to temporary file in the same folder as destination and then rename
> it.
>
> I'm ready to implement it if nobody object.

We do most (all?) of that.  svn_io_file_rename() calls apr_file_rename()
and on Unix that calls rename() which can fail with EXDEV.  When that
happens svn_io_file_rename() fails.

svn_io_file_move() catches EXDEV and copies the file to a temporary in
the destination directory and then calls apr_file_rename().

-- 
Philip Martin | Subversion Committer
WANdisco // *Non-Stop Data*

Mime
View raw message