[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: handling of reparse points

From: Philip Martin <philip_at_codematters.co.uk>
Date: Fri, 08 Jun 2018 00:47:55 +0100

Branko Čibej <brane_at_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.

Received on 2018-06-08 01:48:07 CEST

This is an archived mail posted to the Subversion Dev mailing list.