From Perforce to Subversion
The company that I work for recently switched from Perforce at $800 a client to Subversion at $0 a client. The reasons for which are obvious but what we did not know until fully implementing the system is the pro’s and con’s of doing this for OUR company.
Perforce is a great product. It is fast, easy to use and has some neat tools for managing the editing cycle of source code etc. We have multiple sites for development and having a fast synchronization no matter where you are is very important and perforce does a great job of this. The differencing tools are great and check-in, check-out and revert of code is simple and intuitive.
That said, ‘free’ compared to $800 a client is not to be ignored and we decided to try out SVN. Configuration is a simple unless you want to use HTTPS (which everyone does) and then you have to trawl the knowledge base articles and use some magic to get it all to work. One the server is running though getting client online is a breeze.
TortoiseSVN for simple file management and AnkhSVN for Visual Studio integration are a must as far as I am concerned and once again they are free. TortoiseSVN in particular with it’s Windows Explorer integration and differencing tools is the best interface I have seen in a long time for source control. Perforce tries to have a Windows Explorer interface but it does not do well and certainly get’s no-where near TortoiseSVN.
One major factor that attracted me to SVN is the fact that you can do what you like to the source tree when offline. The concept of checking out for edit in a pain in my line of work where I spend the majority of my time on client sites. Having the ability to make code changes during the day and check them in at night is great.
I frequently do not have to do that though as more and more clients are providing WiFi connectivity outwith their firewall to the Internet and since we have the HTTPS version of SVN running I can simple check code in over the Web without even using VPN! We previously used secure tunnel for this and the client always flaked out at the worst times
One of the benefits of SVN when using Apache is the WebDav. This allows us to include our documents, project plans etc. in the same versioned repository as the source code but with a fit-for-purpose way in Microsoft Office of getting access to and updating the files. This is something that we have not taken full advantage of as yet but will be starting in the very near future.
All in all I would say that SVN is well worth the effort it takes to setup the server and — touch wood — the database has been extremely stable and we have had not problems.
I know that this is a very generic conversation but I will get more in-depth about the branching capabilities (used all the time by us) and how easily it slots into CruiseControl.NET in a different post.