I just typed 'svn add HACKING' as a test and the hard disk went "grind grind grind." The second time was fast cuz everything was in the cache, so I ran the same command using strace. The result is quite pitiful. svn traverses the entire WC, locking everything in sight. It should only lock the current dir -- not the whole tree. Of course, it also happens to be verifying the format of every .svn dir and reading in every single entries file. At unlock time, it uses SIX separate syscalls to unlink the lock file. First, it stats the .svn dir. Then it stats the .svn/lock file. Then it chmod's it. Then it does a stat/chmod *again*. Then it finally unlinks the thing. The correct behavior is: unlink the file; if that fails, then see if it exists and/or whether to make it writable.