I (Julian Foad) wrote:
> Philip Martin wrote:
>> julianf...@apache.org writes:
>>> URL: http://svn.apache.org/r1463721
[...]
>>> * subversion/libsvn_client/copy.c
>>>   (do_wc_to_wc_copies_with_write_lock,
>>>    do_wc_to_wc_moves,
>>>    repos_to_wc_copy_single): Return a flag instead of sleeping here. A
>>>     multi-target repos-to-WC copy will now only sleep once, not once 
>>>     per target.
>>>   (do_wc_to_wc_copies,
>>>    repos_to_wc_copy_locked,
>>>    repos_to_wc_copy,
>>>    try_copy): Pass the flag through.
>>>   (svn_client_copy6,
>>>    svn_client_move7): Handle the sleep here.
>>> 
>>> --- subversion/trunk/subversion/libsvn_client/copy.c (original)
>>> +++ subversion/trunk/subversion/libsvn_client/copy.c Tue Apr  2 
>>> @@ -212,7 +214,6 @@ do_wc_to_wc_copies_with_write_lock(const
>>>      }
>>>    svn_pool_destroy(iterpool);
>>> 
>>> -  svn_io_sleep_for_timestamps(dst_parent, scratch_pool);
>>>    SVN_ERR(err);
>>>    return SVN_NO_ERROR;
>>>  }
>>> 
>>> @@ -2292,6 +2312,9 @@ svn_client_copy6(const apr_array_header_
>>>                       subpool);
>>>      }
>>> 
>>> +  if (timestamp_sleep)
>>> +    svn_io_sleep_for_timestamps(NULL, subpool);
>>> +
>>>    svn_pool_destroy(subpool);
>>>    return svn_error_trace(err);
>>>  }
>> 
>> Is there any reason you are passing NULL to svn_io_sleep_for_timestamps
>> rather than dst_path?
> 
> Good catch.
> 
> I suppose I was thinking I couldn't be sure that the same path was used in 
> each possible case.  Looking at it again, if dst_path is not a URL then it 
> would 
> be reasonable to assume that all relevant changes are on the same filesystem 
> as 
> dst_path.  Even more so if we use the child of dst_path instead, in the 
> copy_as_child case; then the path used would be, I think, the same as it was 
> when the sleep_for_timestamps calls were distributed among the leaf functions 
> before my patch.
> 
> And when dst_path is a URL, timestamp_sleep shouldn't be true, but I also 
> notice I failed to initialize 'timestamp_sleep'.  The standard pattern 
> is that the called functions don't evert set it false, they only ever set it 
> true, so the top level function needs to initialize it.
> 
> Will fix.

Committed r1466876.

- Julian

Reply via email to