programacion-que-es-control-codigo-fuente

What is Source Code Control

  • 5 min

Source code control is an essential tool in the world of programming. In simple terms, source code control is a system that records and controls the changes made to a program’s source code.

Imagine you are writing a program and make a mistake in a crucial part of the code. Without source code control, this could become a real headache.

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

In short, source code control is like a “super undo” that allows you to revert unwanted changes, restore previous versions of your work, and check who and when changed each line of code.

When talking about source code control, we have to talk about three concepts.

  • Source code systems, which are the “guts”
  • Source code clients, the app you use to handle the system
  • Online source code platforms

Source Code Systems

A source code control system, such as 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 source code control systems, for example:

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

Undoubtedly, the most popular one today is Git. Git is a distributed 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. Furthermore, developers can host Git repositories remotely, facilitating collaboration and tracking of code changes.

Git Client Applications

A client of a source code 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 allow you to 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 offers 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 for interacting with Git repositories.

Additionally, most IDEs also allow acting as clients for a source code system, so you don’t have to leave your development environment.

Online Platforms that use Git

Online platforms are web services that use one of the source code control systems like Git or SVN as a base.

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 complete DevOps platform that uses Git as a source code 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 self-hosted deployment.

logo-gitlab

Azure DevOps

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

logo-azuredevops

Bitbucket

It is another online platform that uses Git as a source code 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 initially popular as a Subversion (SVN) repository hosting platform, SourceForge also supports Git as a source code control system. It allows hosting and collaborating on projects using Git, providing features such as issue tracking, discussion forums, and more.