Ben Reser wrote:
> On Tue, Apr 2, 2013 at 1:04 PM, Julian Foad wrote:
>> Philip Martin wrote:
>>> Could we check use-commit-times and avoid the sleep?  Either before
>>> sleeping or perhaps where we set sleep_here TRUE.
>> 
>> OK, thanks; I did that (inside update_internal()), and a few more things, 
>> and committed r1463721.
> 
> I'm not sure this is such a great idea.  If you use commit times it
> may or may not be safe to skip sleeping.  I discussed this a bit with
> Philip on IRC today where he pointed out sleeping may also in some
> cases may create problems as well.
> 
> Commit timestamps may be in the past or the future.
> 
> If they are less than the timestamp resolution of the file system in
> the past then an immediate change to the file after the command exists
> will not be visible to Subversion.  This can be resolved by sleeping.
> 
> If the timestamp is in the future then sleeping may bring you within
> range of the timestamp resolution of the file system, resulting in the
> same problem.  The future timestamp problem can be dealt with by
> keeping clocks in sync (NTP).

Yes, we shan't attempt to handle the clock-skew problem at the moment.  That is 
one of the issues that the enhancements suggested in 
<http://subversion.tigris.org/issues/show_bug.cgi?id=4342>, "Sleep for 
timestamps should be determined by libsvn_wc" could address.

> It'd be easy to say "If you're doing the type of automation that's
> bound to run into these sorts of problems don't use commit times."
> However, I suspect there's times where you want to do both.  As it is
> right now if you're keeping your clocks in sync it should work okay.
> But unless I'm missing something that's not the case after this
> change.

That's true, given that the current implementation doesn't look at the 
timestamps when deciding whether or how long to sleep.  So the safe thing to do 
is reintroduce a sleep even if using commit times, for all applicable 
operations (checkout, update, switch, revert).

I'll commit this soon.  (Running tests now.)


- Julian

Reply via email to