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

Re: How to find out if I own a lock?

From: Philip Martin <philip_at_codematters.co.uk>
Date: 2005-04-13 22:29:34 CEST

SteveKing <steveking@gmx.ch> writes:

> But what about having the filestat information in the svn_wc_entry_t
> struct returned by svn_client_status()?

apr_finfo_t is 84 bytes on a 32-bit machine, that would be quite a
large increase in the size of svn_wc_entry_t which is currently 124
bytes. (I see we still have all the new lock stuff in svn_wc_entry_t,
didn't we agree to drop everything but the lock token?)

Perhaps we could put it into svn_wc_status2_t?

> That would help TSVN a lot (performance wise) - I guess you know
> that Windows isn't as fast with those calls as Linux, there were
> some reports before about timing of 'svn st' and 'svn ci' for Linux
> and Windows on this list...

I find it odd that one more stat call would make that much difference,
because svn_client_status itself is so ineffecient. It stats each
versioned file 5 times, with a further 7 stats on the properties
files. Plus it reads the entire working properties file for each
versioned file. Does it really matter if TSVN makes one more stat?

$ strace svn st tools/dev 2>&1 | grep stress.pl
lstat64("tools/dev/stress.pl", {st_mode=S_IFREG|0755, st_size=15194, ...}) = 0
lstat64("tools/dev/stress.pl", {st_mode=S_IFREG|0755, st_size=15194, ...}) = 0
lstat64("tools/dev/stress.pl", {st_mode=S_IFREG|0755, st_size=15194, ...}) = 0
stat64("tools/dev/.svn/props/stress.pl.svn-work", {st_mode=S_IFREG|0444, st_size=61, ...}) = 0
stat64("tools/dev/.svn/props/stress.pl.svn-work", {st_mode=S_IFREG|0444, st_size=61, ...}) = 0
stat64("tools/dev/.svn/prop-base/stress.pl.svn-base", {st_mode=S_IFREG|0444, st_size=61, ...}) = 0
stat64("tools/dev/.svn/props/stress.pl.svn-work", {st_mode=S_IFREG|0444, st_size=61, ...}) = 0
stat64("tools/dev/.svn/prop-base/stress.pl.svn-base", {st_mode=S_IFREG|0444, st_size=61, ...}) = 0
lstat64("tools/dev/.svn/props/stress.pl.svn-work", {st_mode=S_IFREG|0444, st_size=61, ...}) = 0
lstat64("tools/dev/.svn/props/stress.pl.svn-work", {st_mode=S_IFREG|0444, st_size=61, ...}) = 0
open("tools/dev/.svn/props/stress.pl.svn-work", O_RDONLY) = 3
lstat64("tools/dev/stress.pl", {st_mode=S_IFREG|0755, st_size=15194, ...}) = 0
lstat64("tools/dev/stress.pl", {st_mode=S_IFREG|0755, st_size=15194, ...}) = 0

-- 
Philip Martin
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Apr 13 22:30:36 2005

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