[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: SVN 1.7/1.8 "commit after delete" performance issue

From: Philip Martin <philip.martin_at_wandisco.com>
Date: Tue, 30 Jul 2013 13:53:31 +0100

Bert Huijben <bert_at_qqmail.nl> writes:

> Just pick the parent of the first delete or something like that. The
> path should be a valid path on the same file system, nothing special.
> It is just used for guessing the timestamp granularity.

I suppose that might work for commit, but it's not clear how it would
work for update. Instead how about something like this:

Index: subversion/libsvn_client/commit.c
===================================================================
--- subversion/libsvn_client/commit.c (revision 1508338)
+++ subversion/libsvn_client/commit.c (working copy)
@@ -1027,8 +1027,14 @@ svn_client_commit6(const apr_array_header_t *targe
  cleanup:
   /* Sleep to ensure timestamp integrity. */
   if (timestamp_sleep)
- svn_io_sleep_for_timestamps(base_abspath, pool);
+ {
+ const char *wcroot_abspath;
 
+ SVN_ERR(svn_wc__get_wcroot(&wcroot_abspath, ctx->wc_ctx, base_abspath,
+ pool, pool));
+ 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 */
   if (commit_in_progress)
Index: subversion/libsvn_client/update.c
===================================================================
--- subversion/libsvn_client/update.c (revision 1508338)
+++ subversion/libsvn_client/update.c (working copy)
@@ -701,7 +701,17 @@ svn_client_update4(apr_array_header_t **result_rev
 
  cleanup:
   if (sleep)
- svn_io_sleep_for_timestamps((paths->nelts == 1) ? path : NULL, pool);
+ {
+ const char *wcroot_abspath;
 
+ if (paths->nelts == 1)
+ SVN_ERR(svn_wc__get_wcroot(&wcroot_abspath, ctx->wc_ctx, path,
+ pool, pool));
+ else
+ wcroot_abspath = NULL;
+
+ svn_io_sleep_for_timestamps(wcroot_abspath, pool);
+ }
+
   return svn_error_trace(err);
 }

-- 
Philip Martin | Subversion Committer
WANdisco | Non-Stop Data
Received on 2013-07-30 14:54:07 CEST

This is an archived mail posted to the Subversion Dev mailing list.