summaryrefslogtreecommitdiff
path: root/subversion/libsvn_client/commit.c
diff options
context:
space:
mode:
Diffstat (limited to 'subversion/libsvn_client/commit.c')
-rw-r--r--subversion/libsvn_client/commit.c17
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 */