views:

942

answers:

28

Anyone have any suggestions on where to start for a newbie wanting to try out some sort of source-control along with a new journey into ASP.NET? SVN, VSS, CVS...I dont even know where to start!

+14  A: 

Eric Sink's Source Control HOWTO.

Read it, then download Subversion (free) or Vault (free for a single user) and start playing around with it.

Chris Upchurch
I wholly agree. That series was the definitive primer that got me to learn the concepts and the differences.
Mike L
However, realize that subversion isn't the be-all end-all of source control. it's the most popular right now but is only one of many. Once you learn the basics take some time to look at alternatives so you aren't looking at the world through a peephole.
Bryan Oakley
+8  A: 

Very Subversion specific but it gives a decent understanding of version control basics.

http://svnbook.red-bean.com/

Scott Bevington
+2  A: 

If you are just getting started, I would recommend reading through the free Subversion book. It is a widely-used system, free, and should be relatively easy to comprehend once you get going.

Ben Hoffstein
+2  A: 

If you're 100% .NET, and you have an MSDN developer license, run TFS for Workgroups. Its pretty simple and solid.

If you don't have a license, check out Subversion. Its a nice, free source control that has plugins for Visual Studio integration.

Will
+14  A: 

just make sure you stay the hell away from visual source safe.

Tim Howland
+2  A: 

I first got introduced to svn using tortoise svn, loved it and later a company used Visual Sourcesafe, how I missed using tortoise.

Symbioxys
+1  A: 

Have to second reading the Subversion book. Plus, the software is free, runs on most environments, and is easy to get going.

Ken Ray
A: 

You could start browsing through this site.

http://stackoverflow.com/questions/tagged/source-control

Geoffrey Chetwood
+2  A: 
binil
Nice tip. Edited to add book image.
Gishu
I have that book. It's not as good as the free online book at http://svnbook.red-bean.com/.
Dan Dyer
+1  A: 

The Pragmatic series has two of the best books I have read to help get your head around version control. They have versions for SVN and CVS. I really like their chapters on tags and branches.

Joe Skora
+5  A: 

I think the easiest way is to get a free SVN server through some free provider. I use assembla.

Then, if you are in Windows, you should download TortoiseSVN. That is by far the easiest Subversion client to use.

Start by importing a current project into the repository and then you are ready to go.

jjnguy
The easiest way is to issue `svnadmin /svnRepo/proj1 ; svn import ~/proj1/ file:///svnRepo/proj1/trunk -m "good times"`
dlamblin
+3  A: 

I reccomend SVN to start off with, bit easier to get the hang of than some others.

Tortoise is a good start. It's simple to install and integrates with the windows shell, meaning everything is fairly intuitive on Right-clicks on folders / files etc. Pretty good doc as well.

You will also need a SVN server / host to connet to... I can reccomend Assembla which is free to register with and gives you a SVN server to play with.

xan
Dammit - in the time it took me to retype my answer after accidentally navigating away, someone beat me to the exact same post!
xan
I think someone new to version control should start with command line tools to get a feel for what is actually happening on disk. If you learn by just clicking on icons it will all just seem like so much magic.
Bryan Oakley
A: 

In my opinion if you already have Viual Source Safe and you are a single developer doing work with VS, it is perfectly fine. Its a simple system that works well enough for small single developer projects. I have used it for years without any trouble for small projects. Easy to manage and backup as well.

mattlant
A: 

I believe that strating point is with Distributed version control system (like mercurial or git). There are some advandtages of using it :

  1. You don't need to setup central repository (it rquires tedious server setup)
  2. You can share changesets (revisions) with your friends by using email or other method, and integrate changes to your repository safely.
  3. You can modify revision history (rebase, git supports it) easilly, what is impossible to do with SVN.
andreasmk2
Just to mention that SVN doesn't require tedious server setup for a one-person project - all you need is a local repository, which takes one command to create. You can publish it later. That's not to say git isn't better in the other ways you mention.
Steve Jessop
+3  A: 

I will recommend Subversion or Visual Studio Team Foundation Systems depending on how much money you are willing to shell out.

Check out Visual SVN (Subversion for die-hard VS fans) - it integrates nicely with Visual Studio: http://www.visualsvn.com/

de-Hao
+2  A: 

Since nobody has mentioned this yet, I'd recommend looking at Git as well. There's even a free source hosting service: github.

toluju
+1  A: 

What source control to use really depends on your environment, your corporate culture and the general situation of how projects are handled in your company. The newer "Visual Source Safe" in Team Foundation is hands down better than the piece of crud that VSS used to be. and is good in a Microsoft shop with one or few locations. I've also used Subversion very successfully, and it integrates well into Eclipse. I don't like to put down products, since all have their positive and negative points, I guess. But the two I mentioned above are really good source/version control products. If you are just getting started and want to get your feet wet and learn source control practices and general concepts, download an open source product like CVS or Subversion, load it up and try it out.

http://www.ericsink.com/scm/source_control.html has some good information to work with.

-- I am re-editing this comment to note that it looks like someone else linked to that source control link in a previous post. :) darn it, I wasn't the first to post it.

stephenbayer
+1  A: 

Just getting tools installed is not enough. You need to understand how the particular technology works (like SVN) and how the whole source tree supposed to work: best structure, tagging, branching, merging and so fourth. Since we use SVN I recommend Subversion Book. It has some good explanations of source control concepts.

xsaero00
A: 

I recommended trying on of the free distributed version control systems. Most of them are very easy to setup on your personal PC and come with good documentation. Here are my favourites 1. Bazaar 2. Mercurial 3. Git (only for *nix based systems as far as I know)

See a list here:

http://en.wikipedia.org/wiki/List_of_revision_control_software

Tahir Akhtar
+1  A: 

Check out Subversion (SVN) to start. As suggested in other posts, there's an excellent free ebook that not only covers how to use SVN but is an excellent start on the concepts.

For an easy to setup server, check out the free server from VisualSVN.

If you use Visual Studio, you can use their add-in (costs) or the open source Ankh SVN addin. If you're using other IDEs, Tortoise SVN integrates with Explorer in Windows.

VanSkalen
+9  A: 

Lots of people here have suggested introductions and comprehensive how-tos, which are all good for telling you how to do what you want.

In addition, I'd give three pieces of advice for the novice on how to know what you want:

1) Version-control EVERYTHING (that is, everything you write).

Version-control the project files. Version-control your test cases. Version-control any little scripts you use to copy things around. Version-control your todo list. Definitely version control your design notes. Once you're familiar with the commands it costs nothing, and some day you'll be glad of the history of a file you'd never imagined needing to roll back.

2) When you're happy with a change, check it in immediately. And check it all in.

If you work in sequential steps (and that doesn't always happen - you can get distracted - but it's good practice), then at the start of each new step you should have 0 modified files in your checkout. You may even want to check in unfinished non-working code, depending on what suits you.

3) When you reach a milestone, tag it.

Even your own personal goals (inch-pebbles). If you can't be bothered with tagging, just make a note of the date and time (in, you guessed it, a version-controlled file). If a particular version is memorable for some reason ("I finished the back-end", "I sent it to someone else to look at"), you want to know exactly what was in it. And diffing against the repository diagnoses some kinds of bugs faster than the debugger.

Steve Jessop
A: 

Visual Source Safe (VSS) is fine for a beginner, because you won't know what you're missing. When you need something more complicated, then worry about getting some other product.

Gary Kephart
No, it isn't. VSS eats projects and it's archaic. Don't teach the poor noob bad habits.
Tim Howland
eats projects, hmm, Archaic, hmm, darn, thats where all my projects went to. Thanks for the peice of advice. Oh wait, look there they are. Nice and neat and tidy and version controlled for years.Dont be an idiot and implying that something is just 'bad' with no context and calling people noobs.
mattlant
@mattlant- look up at the top of the thread, where I included the link to "VSS considered Harmful": http://www.codinghorror.com/blog/archives/000660.html . I didn't call Gary a noob, I said not to teach noobs (like the OP, who described himself that way) bad habits. Maybe the idiot is you.
Tim Howland
Never had any problem with VSS.
Gary Kephart
+1  A: 

Nowadays I would just start with a distributed system. They are easier to set up (you don't need to set up a server and/or find one on-line: just init some random directory and start doing your stuff) and just as easy/hard to understand as the centralized ones.

Here are a few that people should take a look when choosing a distributed revision control system:

If you're stuck in Windows, I would stay away from Git (at least for the time being). There seems to be support for Git on Windows in progress, but I haven't tried it yet.

Thiago Arrais
A: 

Comments on products that I've used:

VSS - Haven't used it in a while now (several years), at the time it did the basics of what we wanted but we were running into a variety of issues regularly enough that we actively sought out a better solution. If you've got free access then it wouldn't hurt to get exposure to their implementation to see what was at the time a different way of dealing with the issues (they may have come into line with the rest of the products by now).

CVS - Used this at a previous company, and worked with the original author of tortoiseCVS so I'm a little biased perhaps in thinking that it was a decent open source solution. I'd recommend starting here personally, everythings easily available and widely used.

Perforce - Our companies current source control solution and pretty much universally well regarded on the team. A couple of alternative UI's that people can choose between and good command line support too (vital for tools interaction). If you're evaluating for a company I'd certainly include this in your list to look at.

Gary Buckley
+1  A: 

Start with Subversion. The documentation is online, and the Pragmatic Programmers Svn book is great.

If you're on Windows you can also get TortoiseSvn (free) for explorer integration or VisualSvn (commercial) for Visual Studio integration. For the Mac, Versions looks like a nice stand alone client, and XCode 3 has svn integration built in. Still I'd spend a bit of time in the command line using the svn client to really figure out what you're doing.

After getting comfortable with the way svn works, then you can get into distributed version control systems like Git, Bazaar, or Mercurial, but I've seen enough professional developers have problems wrapping their heads around the basics of version control (branching merging etc) that I'd get comfortable with that first before moving to distributed systems.

Stay the hell away from Visual SourceSafe (VSS). It is poop. Your code is not safe. See these many links as to why not to use VSS.

craigb
A: 

Try Unfuddle for a free hosted SVN source control.

ripper234
A: 

Another vote for Subversion / TortoiseSVN but note that it doesn't play nicely with a FAT32 domestic NAS.

Ian Hopkinson
+1  A: 

subversion ftw.

DanWoolston