Member Avatar

Hi guys,

Subversion or StarTeam? (If neither, then what?)
And why?


Off the top of my head, I'd say subversion cuz it is open source.

I also vote for subversion because it is the best. You can also integrate your svn repository with websvn using webdav on apache to do commits over HTTP. You can also hook up Trac to your repository and have a ticketing system fully integrated with your code.

IE you can do this commit to the svn repo and close the trouble with the commit reason -- linking that commit with a specific issue resolved:
"Change the way the code goes about doing a certain task. Fixes #12 & #13".

It will then close the tickets (12, 13) with the full commit message.

You can also use tortoise svn as a shell extension to windows explorer giving you access to create, commit, or browse repos and changelogs. This keeps the source control independent of the IDE which I think is the proper way to do it. That being said you can use it with any language.

Don't use non-open source revision control systems. They're no good anymore. Use Mercurial. Don't use Subversion unless you have large binary files or the need to control permissions for subdirectories. If you don't want either of those things, Mercurial is superior to Subversion in virtually every way. Personally I use Git, but that's because I haven't used Windows lately.

When people recommend SVN, it's either because they need the two features I mentioned or because they'll see that SVN is the best for the way they manage source code, but this is only because they designed their practices for managing source code around the features of SVN.

For starters, Mercurial is absurdly faster than SVN for the important operations. Merging and branching in particular. If you look at projects that use Subversion, they only have a few branches! Why wouldn't they make a branch for every unit of change they make? SVN is or was just not good at that. Most SVN defenders I've seen will say that's not how they do their workflow. But the truth is that they didn't have the freedom to design their workflow in the first place. SVN has gained some improvements in branching and merging in response to the rapidly growing popularity Git and Mercurial, but it's still clunkier than them.

One thing I haven't bothered mentioning is that Git and Mercurial are distributed version control systems. That's not useful to many people, but it is one of the reasons why they are much faster than Subversion.