Basics of version Control – CVS, SVN, Git

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

  1. 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
  2. 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 . Refer following resources to learn about Git 
  3. 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.
  4. SVN (Subversion)-  Subversion is also a free/open source version control system.  You can find a detailed tutorial available here  SVN Tutorial
  5. 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 – Quick start Tutorial

 

Also read some related Blogs on  Verification Excellence