Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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?

share|improve this question
add comment

6 Answers

up vote 10 down vote accepted

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.

share|improve this answer
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 '10 at 14:51
add comment

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.

share|improve this answer
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. –  Stephen C. Steel Oct 25 '10 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. –  Steve Evers Oct 25 '10 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 '11 at 11:41
add comment

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.

$/{ProjectName}
    /Main
        /Branches
        /Trunk
            /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.

share|improve this answer
    
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 –  MushinNoShin Oct 25 '10 at 19:13
add comment

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.

share|improve this answer
add comment

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)
share|improve this answer
add comment

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

share|improve this answer
    
But there is certainly utility in narrowing the search space no? –  MushinNoShin Oct 26 '10 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 '10 at 14:49
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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