Language: EN

programacion-que-es-control-codigo-fuente

What is Source Code Control

Version control is an essential tool in the programming world. In simple terms, version control is a system that records and manages changes made to the source code of a program.

Imagine you’re writing a program and make a mistake in a crucial part of the code. Without version control, this could turn into a real headache.

Thanks to version control we can store every change that has been made to the code. This allows programmers to track and manage different versions, facilitating collaboration, bug detection, and software maintenance.

Ultimately, version control is like a “super undo” that lets you revert unwanted changes, restore previous versions of your work, and check who and when changed each line of code.

When talking about version control, we have to discuss three concepts.

  • Version control systems, which are “the guts”
  • Version control clients, the app you use to manage the system
  • Online version control platforms

Version Control Systems

A version control system, like Git, SVN, Mercurial, or Perforce, is a set of rules, protocols, and internal mechanisms that allow managing the source code of a project.

There are several version control systems such as:

  • Git
  • Subversion (SVN)
  • Mercurial
  • Perforce
  • PlasticSCM

Undoubtedly, the most popular of them today is Git. Git is a distributed version control system, which means that each developer has a complete copy of the code repository on their local machine.

logo-git

This allows working independently and then merging changes from different developers into a common version of the code. Additionally, developers can host Git repositories remotely, facilitating collaboration and tracking changes in the code.

Git Client Applications

A client of a version control system is an application or tool that allows you to interact with the system and perform operations on the code repository. These clients offer command-line interfaces or graphical interfaces that let you perform tasks on the source code management system.

An example of a Git client is Git Desktop, a desktop application developed by GitHub. It provides an intuitive and easy-to-use graphical interface that allows developers to clone, create branches, make changes, commit modifications, and perform merges, among other operations, without needing to use command-line commands.

logo-git-desktop

Another example is SourceTree, a source code repository management tool developed by Atlassian. SourceTree provides a complete and visually appealing graphical interface that allows users to interact with Git and Mercurial repositories.

logo-sourcetree

Another good option is Gittyup, a desktop tool developed by the open-source community that offers an intuitive and powerful graphical interface to interact with Git repositories.

Additionally, most IDEs also act as clients of a version control system, so you don’t have to leave your development environment.

Online Platforms that Use Git

Online platforms are online services that use one of the version control systems like Git or SVN as a foundation.

These platforms provide intuitive web interfaces and additional features for hosting and collaborating on source code projects, such as issue tracking, project management, code reviews, and continuous deployment.

Some examples of platforms that use Git as a system are:

GitHub

It is one of the most popular platforms for hosting and collaborating on source code projects using Git. It provides an intuitive interface, issue management features, pull requests, code review, and continuous deployment. GitHub is widely used by both individual developers and development teams in open-source and private projects.

logo-github

GitLab

Similar to GitHub, GitLab is a comprehensive DevOps platform that uses Git as its version control system. It offers Git repository hosting, as well as CI/CD (continuous integration/continuous deployment) features, issue tracking, project management, and more. GitLab is available both as a cloud-hosted version and for deployment on self-hosted servers.

logo-gitlab

Azure DevOps

Azure DevOps is another online platform that uses Git as its version control system. Formerly known as Visual Studio Team Services (VSTS), Azure DevOps provides a wide range of tools and services for the complete software development lifecycle.

logo-azuredevops

Bitbucket

It is another online platform that uses Git as its version control system. It provides Git repository hosting features, as well as the ability to collaborate on projects, track issues, and perform continuous integration. Bitbucket also offers the option to host Mercurial code repositories, making it flexible for teams that prefer this alternative.

SourceForge

Although it initially became popular as a platform for hosting Subversion (SVN) repositories, SourceForge also supports Git as a version control system. It allows hosting and collaborating on projects using Git, providing features such as issue tracking, discussion forums, and more.