I have been trying to work out why my Windows client is slow getting top
level WC status, so I tried using Filemon.exe to monitor every file
open. It seems that svn status is recursing deeper than it should.
Windows 2000 SP4
SVN 1.1.1 r11581
file:/// access to an FSFS database on the same PC
md c:\Temp\StatusTest
cd c:\Temp\StatusTest
rd /s /q StatRep
rd /s /q StatWC
svnadmin create --fs-type fsfs StatRep
md StatWC
md StatWC\Sub
for %%x in (1 2 3 4 5 6 7 8 9) do md StatWC\Sub\Deep-%%x
for %%x in (1 2 3 4 5 6 7 8 9) do md StatWC\Sub\Deep-1\Pit-%%x
svn import -m Import StatWC file:///C:/Temp/StatusTest/StatRep/
rd /s /q StatWC
md StatWC
svn checkout file:///C:/Temp/StatusTest/StatRep/ StatWC
Now if I start Filemon capturing all file opens I get something like
this (with a lot of path searching and APR module opens removed):
svn status -N StatWC
SUCCESS C:\Temp\StatusTest\StatWC\.svn\format
SUCCESS C:\Temp\StatusTest\StatWC\.svn\format
SUCCESS C:\Temp\StatusTest\StatWC\.svn\entries
SUCCESS C:\Temp\StatusTest\StatWC\.svn\format
SUCCESS C:\Temp\StatusTest\StatWC\.svn\format
SUCCESS C:\Temp\StatusTest\StatWC\.svn\entries
No PATH C:\Temp\StatusTest\.svn\format
No PATH C:\Temp\StatusTest\.svn\format
SUCCESS C:\Temp\StatusTest\StatWC\.svn\format
SUCCESS C:\Temp\StatusTest\StatWC\.svn\format
SUCCESS C:\Temp\StatusTest\StatWC\.svn\entries
SUCCESS C:\Temp\StatusTest\StatWC\Sub\.svn\format
SUCCESS C:\Temp\StatusTest\StatWC\Sub\.svn\entries
SUCCESS C:\Temp\StatusTest\StatWC\Sub\Deep-5\.svn\format
SUCCESS C:\Temp\StatusTest\StatWC\Sub\Deep-6\.svn\format
SUCCESS C:\Temp\StatusTest\StatWC\Sub\Deep-7\.svn\format
SUCCESS C:\Temp\StatusTest\StatWC\Sub\Deep-8\.svn\format
SUCCESS C:\Temp\StatusTest\StatWC\Sub\Deep-9\.svn\format
SUCCESS C:\Temp\StatusTest\StatWC\Sub\Deep-1\.svn\format
SUCCESS C:\Temp\StatusTest\StatWC\Sub\Deep-2\.svn\format
SUCCESS C:\Temp\StatusTest\StatWC\Sub\Deep-3\.svn\format
SUCCESS C:\Temp\StatusTest\StatWC\Sub\Deep-4\.svn\format
No PATH C:\Temp\StatusTest\.svn\format
No PATH C:\Temp\StatusTest\.svn\format
No FILE C:\Temp\StatusTest\StatWC\.svn\dir-props
No FILE C:\Temp\StatusTest\StatWC\.svn\dir-props
No FILE C:\Temp\StatusTest\StatWC\.svn\dir-prop-base
SUCCESS C:\Temp\StatusTest\StatWC\
No FILE C:\Temp\StatusTest\StatWC\.svn\dir-props
No FILE C:\Temp\StatusTest\StatWC\.svn\dir-props
No FILE C:\Temp\StatusTest\StatWC\.svn\dir-prop-base
No FILE C:\Temp\StatusTest\StatWC\Sub\.svn\dir-props
No FILE C:\Temp\StatusTest\StatWC\Sub\.svn\dir-props
No FILE C:\Temp\StatusTest\StatWC\Sub\.svn\dir-prop-base
Curiously, it appears to have 2 attempts at getting status. The first
one looks in all the subfolders (Sub), and also in sub-sub folders
(Sub/Deep-N). The second attempt looks just in subfolders.
If I get status of StatWC/Sub instead, then it only goes into the
immediate sub folders, and not down to the next level, so the 'problem'
only exists at WC root level.
For a slow laptop like mine, this makes things noticeably slower when
TSVN looks in a folder which contains several working copies. For each
of the WCs it will effectively do svn status -N, which then goes down 2
levels within that WC. That can be an awful lot of file opens.
What is going on here? Am I doing something wrong, is it a deliberate
feature, or is it a bug?
Simon
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Dec 8 19:30:25 2004