diff options
Diffstat (limited to 'subversion/libsvn_client/commit.c')
-rw-r--r-- | subversion/libsvn_client/commit.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/subversion/libsvn_client/commit.c b/subversion/libsvn_client/commit.c index 6b3088558210..07fdce19cdd0 100644 --- a/subversion/libsvn_client/commit.c +++ b/subversion/libsvn_client/commit.c @@ -999,9 +999,22 @@ svn_client_commit6(const apr_array_header_t *targets, } cleanup: - /* Sleep to ensure timestamp integrity. */ + /* Sleep to ensure timestamp integrity. BASE_ABSPATH may have been + removed by the commit or it may the common ancestor of multiple + working copies. */ if (timestamp_sleep) - svn_io_sleep_for_timestamps(base_abspath, pool); + { + const char *wcroot_abspath; + svn_error_t *err = svn_wc__get_wcroot(&wcroot_abspath, ctx->wc_ctx, + base_abspath, pool, pool); + if (err) + { + svn_error_clear(err); + wcroot_abspath = NULL; + } + + svn_io_sleep_for_timestamps(wcroot_abspath, pool); + } /* Abort the commit if it is still in progress. */ svn_pool_clear(iterpool); /* Close open handles before aborting */ |