Julian Foad <julianf...@btopenworld.com> writes:

> The attached patch attempts to improve our 'sleep for timestamps'
> coverage, especially in error conditions where the WC has already been
> changed and so we should sleep as well as returning an error.  I just
> happened to notice that we currently miss several such cases.
>
> The are several TODO notes in the log message.  Before I go any
> further with this, can anybody check I'm on the right track?

Looks plausible.

>  svn_error_t *
>  svn_client_checkout3(svn_revnum_t *result_rev,
> @@ -196,15 +182,21 @@ svn_client_checkout3(svn_revnum_t *resul
>                       svn_boolean_t ignore_externals,
>                       svn_boolean_t allow_unver_obstructions,
>                       svn_client_ctx_t *ctx,
>                       apr_pool_t *pool)
>  {
>    const char *local_abspath;
> +  svn_error_t *err;
> +  svn_boolean_t sleep_here = FALSE;
>  
>    SVN_ERR(svn_dirent_get_absolute(&local_abspath, path, pool));
>  
> -  return svn_client__checkout_internal(result_rev, URL, local_abspath,
> -                                       peg_revision, revision, depth,
> -                                       ignore_externals,
> -                                       allow_unver_obstructions, NULL,
> -                                       ctx, pool);
> +  err = svn_client__checkout_internal(result_rev, URL, local_abspath,
> +                                      peg_revision, revision, depth,
> +                                      ignore_externals,
> +                                      allow_unver_obstructions, &sleep_here,
> +                                      ctx, pool);
> +  if (sleep_here)
> +    svn_io_sleep_for_timestamps(local_abspath, pool);

Could we check use-commit-times and avoid the sleep?  Either before
sleeping or perhaps where we set sleep_here TRUE.

-- 
Certified & Supported Apache Subversion Downloads:
http://www.wandisco.com/subversion/download

Reply via email to