The need for version control

Version control, also called Revision control and Source control is a tool that I would say is absolutely required. Version control systems are essential for any kind of distributed, collaborative development or individual projects. Have you ever?

  • Made a change to code, realized it was a mistake and wanted to revert back?
  • Lost code? Or had a backup that was too old?
  • Had to maintain numerous versions of code?
  • Wanted to see the difference between different versions of your code?
  • Wanted to prove that a particular change broke or fixed your code?
  • Wanted to submit a change to someone else’s code?
  • Wanted to share your code, or let other people work on your code?
  • Wanted to experiment with new features without messing up your original code?

As you work with files that are under version control, every change to your files is tracked. All these changes are bundled into a commit as a single action before they are pushed to the remote repository. Version Control has been around for a while, much longer than most people thing. A brief run through some of the commonest Version Control Systems;

  • CVS, has been around for a long time. Client applications include Tortoise CVS on Windows.
  • SVN, Subversion is another Version Control System—Google Code uses it
  • Git, is a fast growing Distributed Version control system. Distributed Version Control systems have one centralized code base, where the code is pulled from e.g. GITHUB
  • Mercurial(open source distributed version control system like Git, )
  • After you start using it, version control is almost impossible to live without.
Written on April 6, 2014