DEV Community

Cover image for Version Control Systems
Bernard Opiyo
Bernard Opiyo

Posted on

Version Control Systems

Version Control also known as _revision control, source control or source code management _is a class of systems responsible for managing changes to computer programs, documents and large websites.
Vcs records changes to a file or set of files over time so that you can recall specific versions later.

Version control systems are most commonly run as stand alone applications.
Reasons to use version control system

  • To be able to manage changes on the source file and also manage and support team development.
  • Version control remembers the history and hence you can always return to earlier versions if you have screwed up the current file.
  • Version control also allow us to organize and make co-ordinate changes to the code base and supports co-development across system borders.
  • You can always return to earlier version since it remembers the history. *Most Integrated Development Environments(IDE) offer support for one or more version control systems.

Types of version Control systems

  1. Local Version control systems
    This is to copy files into another directory, the approach is common due to its simpleness but its very prone to error. As it is easy to forget which directory you're in and accidentally write to the wrong file or copy over files you don't mean to.

  2. Centralized version control systems which were developed to enable people to collaborate on code and documents with people on different systems that may not share a common file system.The systems include CVS, subversion and perforce have a single server that contains all the versioned files and a number of clients that check out files from that central place.

3.Distributed systems
Here the client mirror the complete repository and not just the latest version of each file. The user then synchronize local repository with the copy on the server.The disadvantage of distributed system is that the local repository of various users on a project can be very out of sync with each other making the job harder when the versions have to be merged again.Example of this system include Git.

Process of implementing Git
If having a linux system, Git is most likely already installed on your system. On macOS, git is available through Xcode which is not always the most recent version. On windows you can use WSL.
Downloads for all systems are available on the download section of the main git website.
The Eclipse IDE comes in with built-in support for Git through the standard plug-in EGit.

4.Cloud services
These are companies which offer hosting services for open source projects or have a free access for academic accounts. Examples includes Github, Gitlab and SourceForge.

Importance of using Cloud services
*It ensures that the code is stored safely off-site.

  • Git and mercurial are systems that are maintained and supported by various hosting services for example vcs provides training in Git. *Centralized version control systems have asimler concept than the distributed ones.
  • It also allows you to check which systems are supported by an IDE before using it.

Top comments (0)