Adventures in Version Control

Wed, Dec 31, 2008

Technology

CodePlex Image While working on a new project it occurred to me that life can be very difficult for a developer if you aren’t able to recall previous builds of your solution. For example, suppose you have a stable build but decide to make a semi-radical break and change some core components in your code. Unfortunately your stroll down that other path didn’t work out so you need to go back to the previous working build.

Did you remember to make a copy of your code? For me the answer was more often no than yes. Not because I am too lazy to perform a quick backup but because it is a real hassle to try and maintain a manual version control of your code. Some readers may have heard me mention that I am not really a developer, rather I work mostly on infrastructure related topics. But with my continued effort towards completing the next version of GateKeeper (more about this later) I am finding that I might actually fit the developer model.

So that brings me to the point of this post… Exactly when is it time to give up the ghost and dive into using a version control solution? And assuming you came to the same conclusion that I did, sooner rather than later,  which solution should you choose?  Without spending too much time looking at all of the options I have to say my experience with CodePlex has been rather great. It’s because of this fact that I took the plunge and decided to create a new project there instead of some of the many available version control solutions.

Now that I have chosen CodePlex to handle my version control it’s now time to figure out the best way to interact with the data.  I started by trying out  VisualSVN and TortuousSVN .  My initial experience was positive but I didn’t exactly like paying $49 per seat to run VisualSVN.  So I looked at the Team Foundation Server client bits and really liked the interaction with Visual Studio 2008.  One problem is that you can’t manage the check-in/check-out from a command line and the TFS bits don’t interact with the Windows Explorer shell.  I could use TortuousSVN for the Windows shell interaction but after some testing I realized that it wasn’t worth it to try and learn two separate products to manage my code.  And besides, I am really only going to interact with the data through Visual Studio.

Another plus for using the TFS client bits is that CodePlex is built on Team Foundation Server.  What better way to ensure compatibility with the version control software then to use the client that is made to work with it?  Still it is another learning curve to understand how the whole check-in/check-out process works.  In the end I feel it’s worth it to ensure that I have a historical database of all changes to my code.

What about you?  Do you use CodePlex for version control of your personal projects?  Have you had any issues with CodePlex that I would want to know about before experiencing the issues for myself?

Comments are closed.

Private