Philip Martin <philip@codematters.co.uk> writes:
> Is this log file atomic? If the log file fails, or is interrupted,
> during the the second copy and translate is it possible that base_name
> is incomplete? That would mean that when cleanup reruns the log file
> it will not prodoce the correct result.
>
> If possible, the first copy and translate should be run outside of the
> log file as it doesn't modify the working copy. That may mean that
> some care has to be taken that the right properties are visible. Then
> the log file need only contain the second copy and translate, and if
> it is interrupted it should be safe to rerun it.
Interesting! Yes, I think you're right. I think the solution is to
find the right interface level and make it atomic (i.e., operate on a
tmp file, then mv). It's probably at the svn_wc_copy_and_translate
level or higher, I'll take a look.
And there's another sense in which my fix papers over a deeper
problem: why did translation do anything when no svn:eol nor
svn:keywords properties were set? That is, it should have been okay
to do the SVN_WC__LOG_CP_AND_TRANSLATE, because no translation should
have happened (and that code *does* toggle the x-bit afterwards if
appropriate, so there was a reason to invoke the code path).
There's some more investigation to do here, I'm looking at it now.
Thanks, Philip.
-K
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Oct 23 05:43:53 2002