GNU/Linux >> Tutoriales Linux >  >> Linux

Introducción al sistema de control de versiones

Si es programador o desarrollador y trabaja en aplicaciones de software o cualquier sitio web, definitivamente necesitará algún sistema de control de versiones para rastrear los cambios. Sistema de control de versiones también se conoce como SCM (S fuente C ode Management) herramientas o RCS (R versión C controlar S sistema).

El control de versiones es un método o una categoría de herramientas de software que ayuda a realizar un seguimiento de los cambios en el código para que, si algo sale mal, podamos hacer comparaciones en diferentes versiones del código y podamos volver fácilmente a las versiones anteriores. Es muy útil cuando varios desarrolladores trabajan continuamente o cambian el código fuente.

Ventajas del Sistema de Control de Versiones

Con VCS, los programadores pueden revisar el historial del proyecto para conocer los siguientes detalles:

  • ¿Qué cambios se hicieron en el código?
  • ¿Quién hizo los cambios en el código?
  • ¿Cuándo se realizaron los cambios en el código?
  • ¿Por qué se necesitaban cambios?

Aquí hay una ilustración gráfica simple que le da una idea de cómo funciona realmente VCS.

En la figura anterior, la primera línea con las bolas de color azul claro es la rama maestra, que es la rama principal del código fuente. Así que v0.1 y v0.2 son las múltiples versiones creadas para tomar una especie de instantánea de todo el código fuente. Hemos creado varias ramas a partir de la rama principal, como la rama de lanzamiento, desarrollo y corrección de acuerdo con los requisitos. Múltiples desarrolladores pueden trabajar en el mismo proyecto creando diferentes ramas y al final fusionarlo con la rama principal.

Tipos de SVC

Hay dos tipos de VCS, a saber:

  1. Sistema de control de versiones centralizado (CVCS),
  2. Sistema de control de versiones distribuidas (DVCS).

Primero, veamos un vistazo rápido sobre el sistema de control de versiones centralizado.

Sistema de control de versiones centralizado

El sistema de control de versiones centralizado funciona en una relación Cliente-Servidor. El servidor tendrá toda la información que es
transferido al cliente. Se puede decir que es una especie de repositorio compartido que proporciona el código más reciente a los desarrolladores. Por lo tanto, los desarrolladores trabajarán en una copia maestra cada vez. Es tan simple como tener que extraer la última copia del código, trabajar en ella (confirmar cambios) y luego enviar el código de vuelta al repositorio.

La principal desventaja del VCS centralizado es que es un único punto de falla. Si el servidor central se cayó, entonces no puede usarlo. Si está realizando una confirmación remota, también llevará tiempo. Necesitará conexión a Internet para confirmar cualquier cambio.

Ejemplos:

  • Código abierto -> Sistema de Versiones Concurrentes (CVS), Subversion (SVN).
  • Propietario -> TeamCity, Vault, Control de versiones de gestión de configuración de IBM (CMVC).

Sistema de control de versiones distribuidas

El sistema de control de versiones distribuido tiene un repositorio centralizado y todos los desarrolladores tienen una copia local del repositorio.
Los desarrolladores pueden trabajar en su copia local simultáneamente. No requieren conexión a Internet para trabajar en el código. Pueden hacer todo en el código excepto empujar y tirar. Si el servidor central dejó de funcionar, tampoco habrá impacto debido al repositorio local.

Ejemplos:

  • Código abierto - Git, Mercurial, Bazar.
  • Propietario - Servicios de equipo de Visual Studio, Plastic SCM.

Diferencia entre la arquitectura SVN (VCS centralizado) y GIT (VCS distribuido)

El siguiente gráfico explica la diferencia entre CVCS y DVCS.

De la figura anterior, podemos reconocer fácilmente que en SVN (VCS centralizado) solo tenemos un repositorio central, pero en GIT (VCS distribuido) tenemos un repositorio central y un repositorio local.

Espero que tengas la idea básica sobre VCS y sus tipos. Publicaremos más guías relacionadas con VCS en los próximos días. ¡Estén atentos!

Lectura relacionada:

  • Qué es Git y cómo instalar Git en Linux

Sobre el autor:

Dhruv Tiwari es un ingeniero de DevOps al que le encanta automatizar cosas, trabajar con Linux a escala y sueña con el día en que los sistemas sean lo suficientemente inteligentes como para no tener que iniciar sesión en una caja de Linux. Viaje de CI/CD desde el código fuente hasta la implementación del código y la producción.


Linux
  1. Cómo verificar la versión del sistema operativo y Linux

  2. Una introducción a las listas de control de acceso (ACL) de Linux

  3. ¿Por qué el siguiente comando está matando un sistema?

  4. Cómo instalar nano editor desde el código fuente

  5. Introducción a la virtualización:una guía completa para principiantes

Introducción al sistema de archivos de Linux

Cómo comprobar la versión de Linux

La introducción de un administrador de sistemas de Linux a cgroups

Cómo instalar el sistema de control de versiones de Git en Debian 11

Controle el uso de recursos del sistema con el comando Ulimit

Cómo:Introducción a la programación - Control de flujo