views:

1247

answers:

2

For a solo developer using Visual Studio 2010 beta 2 is TFS Basic a better option than Subversion (with VisualSVN or Ankh) and (optionally) something like Cruisecontrol?

I don't need distributed source or even remote access. I don't really care about drilldowns and all that reporting. I just want version control & potentially automated testing & building.

EDIT: to respond to Bob Aman's questions (Thanks Bob)

I was considering self-hosting but off-site is a good idea , as you say. I back-up regularly. It is really only me who will have access to the repository so access control would not be complicated. I do have an MSDN subscription so cost is not an issue. The repository won't get particularly large - I'm not that productive. :/

+3  A: 

Depends very much on a couple of factors. Are you hosting the repository yourself or outsourcing it to a company that handles that for you? (Highly recommended, since that usually means you get off-site backup and redundancy for cheap. Things that can sometimes be hard to get right.) It's a lot easier to find stellar hosting for Subversion. I believe there's only one or two options on the market for TFS hosting. How many people will have access to the repository? Do you need to set permissions on portions of the repository? How do you want to handle access control? If you need to do anything particularly complicated, it's either not possible in TFS or its very expensive. Subversion can usually handle it, though it's not always easy to set up.

Almost everything that TFS's version control can do can also be done on Subversion, either out-of-the-box or with the aid of some additional tool. Subversion also integrates pretty well with Visual Studio, though personally I always preferred TortoiseSVN. It's also a lot less expensive, assuming you don't already have TFS through MSDN subscriptions of some sort.

However, if you ever get into the extreme realms of version control (absurdly huge repositories, or gigantic binaries in the repository, for example) what you really want is Perforce.

Bob Aman
Thanks Bob. I have added responses to your questions to my original question.
CAD bloke
If you're not ideological about either, I'd throw together a fake project and try them both out briefly. On the other hand, I **am** ideologically biased towards Subversion, partly because it's open source and partly because I don't touch anything Microsoft anymore. Plus, I remember VSS and automatically distrust Microsoft to handle source control.
Bob Aman
CAD bloke
Well, it's only partially an issue of how bad VSS was. What was far worse, IMHO, was Microsoft's non-existent response to how bad VSS was. Losing data is just not OK!
Bob Aman
Is TFS version control based on VSS, Perforce/Source Depot, or "other"?
Andy Patrick
To the best of my knowledge, "other".
Bob Aman
+4  A: 

If you're not a large company beholden to microsoft, I'd recommend subversion.

TFS source control is - how can I put this - unfortunate.

It works very well if the only thing you ever do is work within visual studio. However, as soon as you want to interact with it from outside (for example, add a text file or some batch files that aren't inside a visual studio solution file), it becomes painful and problematic.

This is mainly because it marks all files as read-only on the file system unless you explicitly check them out. Visual studio does this automatically, but for anything else you always have to explicitly check out files using either the command line tf.exe or the TFS power tools. It gets really annoying really quickly.

Another side effect is the tracking of new files. Subversion et al will tell you about new untracked files and directories when you do a diff, whereas TFS will ignore them entirely. This has led to many many broken builds because a developer forgot to check in a new file, because as far as TFS was concerned, it didn't exist at all until they explicitly added it.

TFS is also strongly tied to the windows domain-model of user authentication. You need to add windows user accounts for people to have access to it, which a pain if you're not already running on a corporate domain network.

Orion Edwards