views:

848

answers:

10

I writing a C# App for a customer for the first time and I am not sure what to do about adopting a version control system.

My version control system is soley composed of making full copies of the source code every day so I never lose more than a day of work.

I would like to do something less primitive going forward. Which source control software is best for a one person team using Visual Studio 2008?

Thanks!

+29  A: 

I would go with Subversion, a local repository can be very easy setup with TortoiseSVN.

To have IDE integration for managing the most common actions I really recommend you AnhkSVN, a Subversion SourceControl Provider for Visual Studio.

CMS
+1 for SVN. Just to add that my experience is that IDE integration add-on is needless. TortoiseSVN integrates with Windows Explorer and works fine for me.
Rumen Georgiev
I use both. Most of the time I use TortoiseSVN. When I need to renames files, AnkhSVN makes it a one-step process.
Ferruccio
A: 

SVN is a great tool that integrates well with windows and VS. Download TourtisSVN. I use

http://ankhsvn.open.collab.net/

As a VS plugin.

It's really easy to get started with SVN and it really helps; especally when you put it on a web server so that you can sync your code between all of your computers regardless of where you are.

nlaq
+4  A: 

I am partial to Sourcegear, well, because that is what I use :-). It is free for one developer and integrates well with Visual Studio.

Another good option is Subversion.

Joel Marcey
+2  A: 

I'm in a similar situation and have a staging server which has VisualSVN Server on it, and I use TortoiseSVN on my development machine.

I also use VisualSVN to get integration with Visual Studio, but you may not require that.

I'd also recommend committing more than once per day. Don't set yourself a minimum schedule, but try to commit after completing each piece of functionality or at what you deem a minor milestone in your day.

JMs
+2  A: 

I'm not sure what the best one is but there are plenty of free ones to choose from.

Check out the ones listed on Wikipedia

On my projects I usually use Subversion. Its easy to set up and use.

I've used Visual Source Safe...but I've found Subversion to be much better...

I've heard good reports about Git...but since I've never used it I can't really give you a recommendation.

Ultimately its good to see that you want to use a VCS as it is definitely a recommended practice. I would argue that using any VCS is better than using no VCS.

But as for which one is the best? Well, probably only you can determine that based on your needs and level of experience. Consider the recommendations made by people on this site but physically try a few out yourself and make up your own mind.

mezoid
A: 

Introducing SVN or GIT (or any other tool) into your workflow has its own overhead and sometimes benefits don't outweigh overheads.

Anyway, if you are already making full copies of the source code every day, you're already having source control.

If you're not sure whether you need professional source-control tool like SVN or GIT, you don't need it.

lubos hasko
I voted you up to cancel one of the anonymous downvotes. On the other hand I don't really agree with your points. Making full copies is not the same as source control. You are missing tools like branching, tags, history, blame. All of these things are useful for even a single developer
1800 INFORMATION
Thank you for up-voting me, I was expecting lots of downvotes anyway :) but my point was that if he is solo developer, he is unlikely to use "blame", tagging and history he gets out of making full copies of source code anyway, and hands up how many developers actually use branching and merging.
lubos hasko
you don't get history out of making full copies unless you are recording the history in a separate text file
Andy Dent
Again, another up vote to cancel the anonymous down votes. I would disagree with your general point; version control is best practice and when you do need source control, you really it. But you are right to point out that using these tools do have a overhead in terms of learning to use them correctly, installation and configuration. The latest fad is to use GIT, which I would argue is not ready for use on the Windows platform.
MagicAndi
Making full copies and having the functionality that real source control provides are very different to each other. Easily seeing the differences between versions, branching (answer: not often!), atomically committing related changes, integration with your IDE, etc., etc. are all features that even a developer working alone will benefit from.
dave
+2  A: 

I would use Perforce. It's free for individual projects.

Mark James
+2  A: 

Bazaar is a good option. Its simpler to install than Subversion, Perforce or CVS and no server component is required. Works equally well on Windows, Mac or *nix. I haven't used SourceGear but I believe it uses a similar client-server model to subversion. This will be debated but I find the commandline interface to be simpler than Git but maybe that's just me. There is no integration with VisualStudio but to be honest with the possible exception of AnkSvn I've yet to see anything that does that well. If you can deal with using the commandline every now and then there is nothing simpler.

Once Bazaar is installed - using it with your existing code is a simple as :

cd mycode              # base directory of your source tree 
bzr init .
bzr add *              # recursively adds your source tree
bzr commit -m "first commit ! "

And you're done. Then - assuming you had a file foo.c in that directory you could do :

bzr log foo.c
------------------------------------------------------------
revno: 1
committer: me<me@MYHOST>
branch nick: tmp2
timestamp: Wed 2009-01-21 16:59:55 +0900
message:
  first commit

Now edit your code as normal and whenever you are ready to commit a change run bzr commit again.

See the Tutorial page for a slightly more in depth introduction.

It also comes with some useful tools like bzr-svn that you can use to import your local Bazaar repo into Subversion repository while preserving full history. So my Employer uses Subversion but I use Bazaar on my local machine for small test apps and utility scripts. then if there is ever a need to add them to an official work repository then that is nice and easy.

Ian
I sometimes use a local repository, typically just another svn repository. I'm going to check this out.
ScottS
Thanks. This is a very good suggestion.
J3r3myK
+2  A: 

SourceGear Vault is great and yes, it's still free for personal use.

Dennis
http://www.sourcegear.com/vault/
Hosam Aly
I think this is by far the easiest solution, all you need to do then is backup two databases to sugarsync.com, dropbox.com etc (instead of mountains of .svn files or with perforce, .db)
Chris S
A: 

Chalk up one more for SVN. It is awesome.

You HAVE to use TortoiseSVN for the client. (Oh well there might be other clients) and for IDE integration I have used both AnkhSVN and VisualSVN. VisualSVN is MUCH better for IDE intergration IMO...but it is not free. (But it is cheap.) For me, If I could not use VisualSVN I would probably forego IDE integration altogether and just use Tortoise.

AS with the others, good for you for doing solo source control. I worked solo for 10 years without it and don't know how I managed.

Seth

Seth Spearman