Let's say you know of an anonymous noobie that wants to be lead upon the path of righteousness. This noobie wants to use some sort of source control tools simply for the experience of using source control tools (and possibly for whatever benefits they bring along with them).

To constrain things further (and to make this possibly even more noobie-tastic), let's say they're stuck in windows developing in visual studio.

How would you guide your neophyte?


6 Answers 6


First, show them VisualHg, which really fits Visual Studio like a glove to a hand, so they fall in love with it on first sight. Then show them where they can download it, and then, although it's lemon easy to use, also show them these two really swell tutorial sites, that shows a little more than just pretty pictures (although it's got some pretty pictures in there as well): Hg Init and Hg Tip. As soon as they're across that, they can stop calling themselves newbies for sure --> here be dragons.

  • 1
    I was sent a link to hginit.com when I started here, having never used mercurial before - I can't recommend it enough
    – Oli
    Oct 25, 2010 at 14:51

Give them a copy of TortoiseSVN for a client and CollabNet's SVN server for a server, and have them put their My Documents folder under Subversion control. As the old joke says, there's no place like $HOME, and living entirely under source control for a few months is an experience they'll never forget. Plus, when they learn to check in frequently, they'll find that source control is a fantastic backup system.

  • 2
    Source control is only a "fantastic backup system" if the system hosting your repository has "fantastic backups". Distributed VCSs like git and Hg can help by making it easy to have redundant copies of the entire repository on multiple machines. But with a central VCS, you need to have reliable backups of the single repository: if you lose it, you lose all your history. Oct 25, 2010 at 18:28
  • 2
    +1: IMO, svn is more obvious to the learner, and diving into the dvcs vs vcs issue is superfluous to the learning experience. I'd suggest visualsvn server over collabnet's svn server though: purely for ease of use. Oct 25, 2010 at 19:40
  • why woudl a DVCS be a better backup that SVN? You commit, commit, commit.. and forget to push upstream.. you're much worse off than SVN that (effectively) pushes upstream with every commit. SVN also has the truly excellent svnsync that incrementally creates copies of your repo automatically, without any user having to push changes to multiple peers.
    – gbjbaanb
    Jul 7, 2011 at 11:41

Everyone here mentioned a lot of IDE tools to use for source control. But from what I've seen generally the largest problem with source control is organization. The directory structure can make your life 10 times easier with a project that multiple people are working on. People take the branching feature for granted but don't realize that without the proper structure branching can be a pain. Setting up source control on another computer can be a pain if the user doesn't choose the same exact path as the original user. There are so many gotchas with source control that experienced developers take for granted I would have loved for someone to warn me of these situations before I had to learn the hard way. Most of them can be solved with a good directory structure. Here's an example.

            /Docs (documentation)
            /External (external dll's referenced outside the project)
            /Scripts (build scripts, install scripts, +)
            /Source (all source code)
            /Tests (unit tests, stress tests, etc)
            /Tools (tools for building or installing example: nant, ilmerge)

Of course for a new programmer there are many features here that are "excessive" but having the structure in place and realizing that it makes a difference are a big help.

  • Thank you for pointing out a gotcha along the way. I'll come clean, I'm the newbie so this sort of information was part of what I was looking for. +1 Oct 25, 2010 at 19:13

I got started thanks to the Pragmatic Press with Pragmatic Version Control using ( Subversion || CVS || Git ).

Actually I think I got started with SourceSafe before that, but I wasn't using it that well and also it was SourceSafe. Really a quick read-through of any of those will get someone up to speed on the concepts pretty effectively.


If your developing in a Windows environment and targeting Visual Studio as an IDE, I would highly recommend Mercurial for source control.

  • Use TortoiseHg as for managing repositories.

  • Use VisualHg for an in editor interface to TortoiseHg.

  • For the actual storage of the repository, you have two choices:

    • Using the built in server hg serve.
    • Use a hosted solution like Bit Bucket (highly recommended)

Whilst I personally use git I would send them to some articles explaining version control and source management and let them experiment.

Surely fooling around with different tools like this is what we programmers love no? I say let this newb have some fun learning which tools are best for him/her

  • But there is certainly utility in narrowing the search space no? Oct 26, 2010 at 4:18
  • Well certainly the OS you are running will have a big factor but in terms of functionality of them all I say let them play about and learn which ones are better for particular projects.
    – Toby
    Oct 26, 2010 at 14:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.