We use Subversion as our version control system not only for source code but also for documents of all kinds. As I knew TortoiseSVN a subversion client from my former company, I also used it here at Catalysts, running on Windows Vista.
I liked the reliability of Tortoise quite much, but over the time it was slowing down my PC more and more. During an SVN update, my whole laptop was blocked and I couldn’t even use other programs at that time – therefore I was looking for an alternative to TortoiseSVN and found it with SmartSVN.
Of course I also use plugin support like Subclipse for my IDE (Eclipse) but as mentioned above we have also share documents in our repository, therefore I also need a standalone SVN client without any IDE.
My most important features for an SVN client are (well, they aren’t much)
- shell integration
- fast and easy update/commit
- no negative side-effects on the overall performance of my PC
Now you might say that stuff like speed or reliabilty are no features, but I was so angry about the bad performance of Tortoise on my PC that those things were so important to me. Most of the time I’m doing Update and Commit; those things need to work fast and reliable.
So I’ve removed Tortoise, installed SmartSVN and tried it for more than a week.
Like Tortoise, SmartSVN also has a shell integration, but it also has a (compare to Tortoise) much more powerful standalone GUI – I don’t wanna list all the features here, you can grab them from their homepage. What I liked quite much in SmartSVN is the ability to locally see all the files that have changed in the repository but have not been updated to the local working copy (see here); unfortunately this feature is only available to SmartSVN Professional which – at the time of writing this entry – costs 79 $ for a single license.
What is also quite cool is the Transaction View which polls on every repository you want and notifies you about new revisions (e.g. with a systray icon in windows). Using Tortoise, I regularily had to do the SVN Update call manually – most of the times without any new revision. The Transaction View tells me immediately which new revisions are available and I can then decide if they are worth updating my local copy.
Anyways, after that single week of testing, SmartSVN didn’t respond for three times and I had to kill it with the TaskManager, memory consumption is also quite high; and after a restart of SmartSVN the whole working copy is scanned again (you can optionally turn that off but then you don’t have those advanced features I mentioned aboce any more), and memory goes up again. During using the SmartSVN standalone I often had the feeling that it responds quite slow and even when using the shell integration, calculation of files to be committed took quite long, much longer than Tortoise does.
Another issue with SmartSVN was that the reliability of the shell integration (the indication over every file if it’s dirty or not) was quite bad – many times it indicated wrong or now icons there, cause the cache seemed to be out-of-date. Tortoise was much better there.
My personal opinion after one week SmartSVN is that I will switch back to Tortoise again. To be honest, the overall features of SmartSVN are much cooler but I liked the handling of Tortoise, especially in connection with the shell – much more. SmartSVN isn’t blocking the whole disk (at least I didn’t feel that so much), but it performs not as fast as Tortoise.
My default operations with the SVN client are Update and Commit – and that job is done better by Tortoise; if you’re doing advanced operations (like branch switching) quite often, then SmartSVN might be more suitable to you. Anyways, you also need to consider that for some features (like the transaction window) you need to purchase SmartSVN Professional.