Introduction to Version Control

Version control, also known as revision control, is a way of keeping track of the changes we make to software and documents and of managing multiple versions of files. Version control systems are powerful tools that offer a way to partly automate this process using so-called repositories that is more powerful and flexible than managing versions manually. As well as improving our own individual workflow, version control tools make it easier to collaborate with others on a set of files by allowing us to integrate conflicts between versions produced by different people.

This tutorial is in two parts. Part 1 gives a basic introduction to version control. It explains why you may want to use a version control system and equips you with an understanding of the common concepts and terminology underlying many version control systems including CVS, SVN, Git, and Mercurial. It includes a simple demonstration of SVN and will prepare you to complete the scripted practical linked in the list of associated files.

Part 2 explores some of the most important differences underlying common version control systems that you should be aware of. After these two tutorials you should feel confident to start using basic version control in your work and will be better equipped to decide which tool to use.