Currently, 'svn status' is done like so: 1. Crawl the working copy, building a massive hash of status structures (interesting ones only, unless -v is passed, in which case, one structure per path in the working copy). 2. If -u was passed ask the server to send you update information, which is then laid atop the existing hash of status items (possibly adding even more items to that hash). 3. Pass that hash back to the caller. 4. Caller sorts the hash keys, and flies over the hash doing the printing. This is, shall we say, inefficient. You should *see* how terrible the performance is with, say, a Windows GUI. 'svn status' should be doing a single pass (combined working copy + update info), and using the notification system to streamily hand back status info to the client.