Code Management Solutions - Sound off!

Obviously, any team of multiple developers needs to use some form of change management system. Personally, I also like the idea of using one at the individual level for my game development activities.

There is the obvious point that I am still fairly new to Java game programming and expect to make mistakes along the way, so a version control system is almost mandatory. :smiley: Beyond that, as I’m learning I may also want to try more than one way of doing something and a seperate code branch is helpful for such experimentation. Also, since my coding could take place from either my primary home machine or my laptop ( and then from either home or while remote ) I thought a good repository would be the best solution for keeping productive no matter my location. Although familiar thru work with CVS on the free side and SynergyCM on the very-far-from-free side, I have decided to try out Subversion for my repository and the Subclipse plugin.

I was curious to get some opinions from others here that are working either individually or in teams on what tool they use and some of their opinions.

We use it at the office. We’re about 10 developers, and 20-25 people reading and checking out various non-java files as well. It’s pretty stable and it has nice features. Being able to force locking on some files is also a plus.

Subclipse lacks one feature: when you ask for a list of files to commit, you can’t pick one of the files in this list and ask for a diff (as in: what the heck did I do in that file?). The tortoise shell integration can do this.

It’s not particularly fast. Especially if you have 5 projects with 5000+ java-files. But it’s not the slowest, either.

If you’re going to use it, be sure to check in your entire project layout into the repository. This will allow you to check out an entire branch as an Eclipse project with a single click. It’s very convenient, and it also allows you to version project configuration, like classpath, libraries, run-configuration, etc.

I was never involved with setting up the actual repository, but I hear it can be quite involved. With apache servers, samba, etc.

One major disadvantage: merging sucks ! :-X But since you’re the only developer in the project, you might not run into the problem too often. Also, if you’re like me and you often need to compare two versions to figure out what exactly you did, you’ll need an external difference viewer like Araxis, because the internal diff is just as lousy as the merge.

I used Visual Source Safe a few years ago. It sucks - don’t bother with it.

Then (after much whining) I got my company to switch to Subverison… Everyone is very glad that we did. Subversion does a great job. On Windows I sue both the command line client and TortoiseSVN - the Explorer.exe shell integration… it works very well, most of the other guys never touch the command line, and a lot of them are using tools that offer no integration with Subversion and they are happy using TortoiseSVN outside of their IDEs.

I have Subclipse installed, but mainly so it tracks the renames when I do refactoring. I usually use TortoiseSVN to check in my code, but I flip-flop between using Subclipse plugin features in Eclipse or using TortoiseSVN, or even the command line.

I’m waiting to see what the Subversion support in NetBeans is like. There is a beta plugin for NetBeans 5.5.

I’ve been forced to do some stuff with CVS when I want to grab some open source stuff from source forge… I do NOT like CVS. I’m just not comfortable with it, whereas I liked Subversion right away.

In contrast to Bahuman’s opinion, I find merging with Subversion to be great. But of course my reference point is Visual Source Safe, where merging was useless.

Subversion through and through.

It’s free and it’s also the best.