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