i tested your patch, and it changed nothing in the total runtime on
unix.
then i removed some of the chmods as i thought they are pointless.
the runtime again did not change. the statistics changed:
rm -rf wc, svn up -r 1, chmod removed/reduced (full update)
280 total
128 _rename
50 mkdir
43 open
15 chmod
14 _write
14 unlink
1 _poll
svn up -r 1, chmod removed/reduced (empty update)
60 100
21 35 _rename
13 21 __open
13 21 unlink
6 10 _write
5 8 chmod
svn_wc__entries_modify is in this case (empty update):
21 53 svn_wc__close_adm_file
12 32 svn_wc__open_adm_file
6 15 apr_file_write_full
the next thing would have been the rename ... interesting, that even
in the case of an empty update they are there. there seems to be a
lot of things going on in tmp.
and you don't notice the bdb access at all .... it seems that
"server" (even its ra_local) side is doing nothing.
the patches i applied, additional to philips, and without philips:
Index: subversion/libsvn_wc/adm_files.c
===================================================================
--- subversion/libsvn_wc/adm_files.c (revision 4795)
+++ subversion/libsvn_wc/adm_files.c (working copy)
@@ -264,12 +264,8 @@
path = v_extend_with_adm_name (path, extension, 0, pool, ap);
va_end (ap);
- /* Remove read-only flag on destination. */
- SVN_ERR (svn_io_set_file_read_write (path, TRUE, pool));
-
/* Rename. */
SVN_ERR (svn_io_file_rename (tmp_path, path, pool));
- SVN_ERR (svn_io_set_file_read_only (path, FALSE, pool));
return SVN_NO_ERROR;
}
@@ -527,12 +523,8 @@
path = v_extend_with_adm_name (path, extension, 0, pool, ap);
va_end (ap);
- /* Temporarily remove read-only flag on destination. */
- SVN_ERR (svn_io_set_file_read_write (path, TRUE, pool));
-
/* Rename. */
SVN_ERR (svn_io_file_rename (tmp_path, path, pool));
- SVN_ERR (svn_io_set_file_read_only (path, FALSE, pool));
return SVN_NO_ERROR;
}
@@ -573,8 +565,6 @@
path = v_extend_with_adm_name (path, NULL, 0, pool, ap);
va_end (ap);
- /* Remove read-only flag on path. */
- SVN_ERR(svn_io_set_file_read_write (path, FALSE, pool));
SVN_ERR(svn_io_remove_file (path, pool));
return SVN_NO_ERROR;
Index: subversion/libsvn_wc/log.c
===================================================================
--- subversion/libsvn_wc/log.c (revision 4795)
+++ subversion/libsvn_wc/log.c (working copy)
@@ -952,11 +952,8 @@
}
}
- /* Make the tmp prop file the new pristine one. Note that
we
- have to temporarily set the file permissions for
writability. */
- SVN_ERR (svn_io_set_file_read_write (basef, TRUE, pool));
+ /* Make the tmp prop file the new pristine one. */
SVN_ERR (svn_io_file_rename (tmpf, basef, pool));
- SVN_ERR (svn_io_set_file_read_only (basef, FALSE, pool));
}
}
__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Feb 8 16:24:28 2003