I'm new to version control (currently using SVN), but I don't understand how this helps developers. What does version control do that makes it useful in a development environment?

  • 4
    Just read Eric Sink's excellent Source Control HOWTO-series: ericsink.com/scm/source_control.html. For the rest, there's not much to answer here or discuss.
    – Deckard
    May 9, 2011 at 8:33
  • 4
    Source control is one of those things that seems pointless until you need it. Then you realize that you can't do without it. Unfortunately, by then it's too late. Sort of like flood insurance, except I find source control to have far greater utility. May 9, 2011 at 17:35
  • 2
    @rahmanisback you want it just after you do File|New Project... you need it as soon as you have >1 developer on the project (my standard line is > 0 developers - and I believe this is more true now than ever)
    – Murph
    May 9, 2011 at 21:00
  • 8
    Working without version control is kind of like removing the "Undo" command from the word processor you use to type your essay, or removing all erasers and correction fluids from your desk.
    – rwong
    May 10, 2011 at 3:23
  • 2
    @rahmanisback As soon as you accidentally delete a file or otherwise lose data, for one. @rwong nice analogy. May 10, 2011 at 6:39

3 Answers 3


VisualSVN and TortoiseSVN are just UI clients for SVN server. SVN server is source / version control system. Version control system is key asset for any real development because it stores versions of you your source codes. When using version control system you keep only local copy of source codes. The main copy is stored on version control system and you commits changes to the system.

SVN allows:

  • easy sharing source codes among whole team through central repository
  • backuping your source codes and other resource files related to the project
  • keeping history how source codes changed
  • you can revert to any version kept in the history
  • you can compare changes between versions
  • you can see who made changes
  • you can lock the file for exclusive access so nobody else can work on the file
  • you can see who is working on any source code file or who locked the file
  • you can merge changes in case of parallel work on the same file
  • you can see comments associated with committed changes
  • with additional tools you can associate committed changes with tasks
  • you can label / tag version to easy find for example production releases
  • you can branch source code - create parallel versions where one branch can be considered as the main one and other can be used to test some special feature or to continue development of the new product version while fixes to the current production version are fixed in the main branch
  • you can merge changes between branches
  • etc.

VisualSVN is extension to Visual Studio which enables you using SVN repository directly from Visual Studio UI. TortoiseSVN is extension to Windows Explorer which enables you using SVN repository directly as you browse folders and files.

  • +1. Haaa.. after using VCS for more than a decade, it's kind of really tough to answer 'why'. I mean it's just so obvious - but really hard to articulate really 'why' the way you have done it! Great answer. Mar 12, 2013 at 14:16
  • I believe AnkhSVN makes also a killer job integrating SVN into Visual Studio. Mar 12, 2013 at 14:54

Version control offers a number of things:

  • Archive your software so you can see the state it was in at previous points in time. Very useful for finding where a bug was introduced.
  • Allow multiple developers on the same project to share and coordinate their work while helping to guard against overwriting each others work.
  • Support individual and business continuity particularly through a central server that is protected and backed-up.

Its a minimum for any software development work beyond just tinkering to see what happens.

I always warn anybody who is working with a version control system for the first time that avoiding it is only inviting trouble. They WILL run into a problem that when they look back they WILL realize it would not have happened if they used the system.


The most productive developer is alone. A solitary developer never has to worry about coordinating with anyone else. But as soon as the project goes plural, there is overhead. And for every developer added to the team, the overhead gets worse. It is the job of the VCS to help manage this overhead and minimize the effects.


  • 8
    Even a lone developer needs version control. The VCS doesn't just "manage the overhead" as this quote implies.
    – alroc
    Jul 23, 2013 at 1:12
  • 5
    Even a lone developer can realize they did something wrong a week ago and want to get the old code back. Even a lone developer might want to try out a large, complex set of refactors without risking the original codebase. Jul 23, 2013 at 3:27
  • I think the "backup" and "restore" aspects of version control are obvious to most, but it's not until you realize how version control helps reduce the overhead of collaboration that someone truly understands its value. Jul 23, 2013 at 4:48

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