What is Version Control system?
A version control system is a database which stores all the change records of your work. When multiple members of a team work together on a shared project, it is important to keep incremental changes of all individual team members in sync in a common database. The version control system helps in achieving this by updating incremental changes to a common database with the changes/comment/author’s name and the same can be accessed by other peoples whenever is required
What is a Repository?
The repository is the central storage where all the files and directories part of the project is stored. Information is normally stored in the form of a file system tree. A typical client-server model of system is followed where any user can write information to the repository as well as read information from the repository.
However unlike a file server the repository is special that the repository remembers each version of the files changed. This enables a version control client to access any versions from the repository and thus enables tracking changes
What are some of the common Version control systems?
Some of the most common version control systems used widely are
- CVS – The CVS (Concurrent Versions System) is a commonly used version control system and available free. You can see more details of some of the most commonly used commands in CVS here – Frequently used CVS Command For more details and how to download/install etc refer the CVS Site on Gnu
- Git – Git is another most widely used and open source version control system both for software development as well as chip designs. It is also available free and is a distributed revision control system
- GitHub – GitHub is a Web-based Git repository hosting service available at github.com. GitHub provides a Web-based graphical interface and desktop as well as mobile integration. It also provides access control and several collaboration features such as bug tracking, feature requests, task management etc for every project. GitHub offers both plans for private repositories and free accounts, which are usually used to host open-source software projects.
- SVN (Subversion)- Subversion is also a free/open source version control system. You can find a detailed tutorial available here SVN Tutorial
- Perforce – Perforce is another popular version control system which is proprietary and not free but popular among software and hardware developers. You can find more details on the Perforce Website