diff options
author | Peter Wemm <peter@FreeBSD.org> | 2013-11-11 01:00:29 +0000 |
---|---|---|
committer | Peter Wemm <peter@FreeBSD.org> | 2013-11-11 01:00:29 +0000 |
commit | 6573976d8d3ffbe3d00487ebc8c11e3eb4033f17 (patch) | |
tree | c05673887167c7ecd55a62ed72830f5186f453c1 /subversion/libsvn_client/commit.c | |
parent | 97551b2898eb459e9b616947d87d026d27b61518 (diff) |
Notes
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 6b30885582105..07fdce19cdd0a 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 */ |