Version Control Systems (VCS or SCM) are used to store history of all software changes so they can be listed, referred or reverted. For one developer they are used to check what was happening with the software in the past. For a group of developers VCS is simply a required tool to correctly synchronize software code.
Git is currently one of most popular version control systems. It allows developer to work without on-line connection to original source code repository. Git repositories are supported by web services like GitHub or Bitbucket (see below). Original author of Git is Linus Torvalds.
- Free ebook: Pro Git - Scott Chacon and Ben Straub, 2014
- Learn Version Control with Git - free online version
Mercurial (also called Hg) is modern system, but different that Git. It is supported by Bitbucket & Google Code.
- Free ebook: Mercurial: The Definitive Guide - Bryan O'Sullivan, 2009
- Free ebook: Version Control with Subversion - Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato, 2011
- TortoiseSVN - Windows shell extension
CVS is a successor for GNU RCS system. RCS was local-repository system, CVS supports central repository.
- Free ebook: Open Source Development with CVS, 3rd Edition - Karl Fogel and Moshe Bar, 2000
- Quick Start to CVS
- Reference manual for CVS commands
- CVS Quick Reference Card
- Simple howtos - CVS - short introduction
- CVS Tutorial -
- Linux CVS Tutorial
- video: CVS Tutorial Series - Creating a Project
Public code repositories
You can store your code (especially Open Source) in web-based code repositories. Some of them allow also the code to stay private (for free). Use them to share your project with other developers.
- GitHub - free for Open Source projects
- Bitbucket - free for Open Source and private projects
- Google Code
- Comparison of open-source software hosting facilities - Wikipedia.org
- Comparison of revision control software - Wikipedia.org
- 7 Version Control Systems Reviewed - Glen Stansberry, 2008
- A Visual Guide to Version Control
- Software patching