Switching to CVS

For my sins, I’ve used Source Safe for version control on quite a lot of my projects in the past few years. It’s got its faults but, well, the price is right…

Now that I have a laptop that I can actually work on again… Ok, I know it’s a lame excuse for buying a new toy, but…

I need to be able to work on at least two boxes at once. Source safe’s traditional locking style doesn’t fit with how I want to work right now. I might be working on one project on the laptop in front of the telly and another on my main box during the day. They may share subprojects; I may be working on the same files… Locks get in the way. I’d rather live with the merge…

I had thought of moving to Perforce after reading good things about it on Joel. I tried it, free, but though it does all the stuff you need, and more, it was hard to learn. I’ll quantify that statement: I couldn’t be arsed to spend the time reading about what I needed to know. I’ve been working with CVS a lot lately on client sites and I after spending some time fighting with Perforce I decided that I knew how to do what I wanted to do with CVS. I’d decided CVS wasn’t for me, personally, due to the general bad mouthing that they give Windows-based servers on the main web site… Anyway, I punted around and found www.cvsnt.org grabbed the stuff and, well, it works for me.

Setting stuff up has taken longer than I’d hoped, but only because my use of Source Safe was slightly muddled… I’d found, and liked, the ‘share files’ option. I have several libraries that I ship as part of my various web projects. Some of the projects dont need all of a library and had just had the appropriate files shared from the main library - with a custom dsp file… Nightmare to maintain, x projects all using the same library with different files and a custom dsp. The view taken was that it was nicer to have a web sample that didn’t contain any fluff that it didn’t need. Hmm, nice if I had an army of grads to do the dirty, but…

So now all projects that use a library use the whole library. This is better. It means I need to be a bit more careful about what goes in to which library, but that’s no bad thing anyway…

The setup I have now works well. I can do stuff on any of my machines and then merge it all back when I need to. I just need to move all of the stuff that I may need to share (like 3rd party stuff and tools and docs) into CVS so that I get the location independence that PragDave talks about.