Branko Čibej <br...@apache.org> writes:

>> We do use that flag, but — just like cross-device copies on Unix — the
>> move is no longer atomic, which could break the working copy quite badly.
>
> I mean cross-device moves, of course, not copies.

svn_io_file_move() is our wrapper that is intended to make it work: it
does a cross-device copy to a temporary name and then an atomic rename.
That looks like it should be safe and workqueue.c:run_file_move() has a
comment claiming this works.

However there appears to be a different bug in svn_io_file_move: it
doesn't delete the original after a successful cross-device copy/rename.
It looks like r1685793 accidentally removed the delete.  The
cross-device code is old, it predates wc-ng, so it is possible that it
is no longer exercised.  For wc-ng it is not currently possible to put
.svn or .svn/tmp on a separate device.

-- 
Philip

Reply via email to