Está en la página 1de 4

SISTEMAS DE CONTROL DE VERSIONES

¿QUÉ SON?

El control de versiones es un sistema que se encarga de generar un registro de todos los cambios
que se le realicen a un archivo o conjunto de archivos a través del tiempo; esto con el fin de poder
recuperar más adelante versiones anteriores específicas. Estos sistemas son muy usados en la
industria del software para llevar un control de las distintas versiones de un código fuente; y son
llamados sistemas de control de código fuente.

Los sistemas de control de versiones (SVC del inglés System Version Control) han ido
evolucionando a lo largo del tiempo y han sido clasificados en tres tipos: Sistemas de Control de
Versiones Locales, Centralizados y Distribuidos. [1]

CLASIFICACIÓN CRONOLÓGICA
SISTEMAS DE CONTROL DE VERSIONES LOCALES

Estos sistemas de control de versiones se caracterizan por dejar de lado el manejo de versiones de
manera independiente y pasar a almacenarlas en bases de datos.

Este sistema quedó obsoleto rápidamente puesto que el almacenamiento se realizaba en el


computador de cada uno de los desarrolladores y no existía una manera eficiente de reproducir el
código entre ellos.
SISTEMAS DE CONTROL DE VERSIONES CENTRALIZADOS

Los sistemas de control de versiones evolucionaron para facilitarle a los desarrolladores el trabajo
colaborativo en proyectos específicos. El cambio se basó en pasar del alojamiento de las versiones
en los discos duros de los desarrolladores a alojarlas en un servidor. Sin embargo, como es habitual
los cambios traen nuevos retos y este no fue la excepción.

Estas versiones centralizadas eran muy útiles en proyectos con pocas actualizaciones, sin embargo,
resultaba engorroso en proyectos con decenas de colaboradores y con actualizaciones casi a diario,
puesto que ningún desarrollador podía seguir adelante hasta que todos los conflictos del proyecto
fueran solucionados.
SISTEMAS DE CONTROL DE VERSIONES DISTRIBUIDOS

La siguiente generación de sistemas de control de versiones trajo consigo de nuevo un cambio en


cuanto a la manera de almacenar. Se paso de tener un servidor común de trabajo a darle a cada
desarrollador una copia local del proyecto, se creó una red distribuida de repositorios.
Este cambio trajo consigo el hecho de que cada desarrollador podría trabajar a su propio ritmo e ir
almacenando a nivel local y sólo realizar una mezcla de conflictos cuando lo requiera,
disminuyendo la posibilidad de pérdida de datos o caída de servidor que ocurría con su anterior
generación. [2]

VERSIONAMIENTO SEMÁNTICO
El versionamiento semántico es un convenio o estándar que se usa para definir la versión de un
código, de esta manera todos los desarrolladores y consumidores manejan un lenguaje en común
al momento de hablar de las versiones de un código.
Existen tres tipos de cambios dependiendo de la naturaleza del cambio generado, que son:
Major: Cambio drástico en el software. No es compatible con código hecho en versiones
anteriores.

Minor: Cambio que añade alguna característica nueva al software o modifica alguna ya
existente, pero que sigue siendo compatible con código existente. También cuando marcamos
algo como obsoleto.
Patch: Cuando arreglamos un bug siendo el cambio retrocompatible.

GIT
¿QUÉ ES?

Git es un software de control de versiones distribuido el cual está enfocado a la velocidad y manejo
de grandes proyectos; diseñado por Linus Torvalds (creador del núcleo Linux).

La mayoría de los demás sistemas almacenan la información como una lista decambios en los
archivos, mientras que Git modela sus datos más como un conjunto de instantáneas de un mini
sistema de archivos.

Git es uno de los sistemas de control de versiones distribuidos que más ha crecido en uso en la
última década. Es el utilizado para gestionar el código del kernel de Linux, VLC, Android, Perl,
Cairo, Gnome y otros importantes proyectos libres como X.org y Ruby on Rails. [3]

VENTAJAS DE USO

 Permite manejar grandes proyectos


 Autentificación criptográfica del historial
 Velocidad extremadamente alta
 Formato de archivo sencillo y compacto
 Permite guardar cambios sin estar conectado a internet
 Menos consumo de recursos para el repositorio remoto

SOFTWARE DE CONTROL DE VERSIONES

Existen una gran cantidad de repositorios de software que ponen a disposición de los usuarios
sistemas de control de versiones en los cuales puedan alojar sus códigos. Algunos de estos son de
software libre, es decir que permiten que personas que deseen colaborar editen el código y otros
son de tipo privado, por lo que sólo puede acceder el usuario y sus colaboradores por medio de un
código de acceso.
Existen tres software de este tipo que se destacan por encima de los demás y son:

GITHUB: Es una plataforma de desarrollo colaborativo que utiliza el sistema de control de


versiones Git. Usualmente el código de los proyectos es almacenado de manera pública (software
libre), sin embargo, es posible adquirir repositorios privados mediante una cuenta de pago; en
donde el pago varía entre los siete y los doscientos dólares al mes, dependiendo del número de
repositorios y colaboradores para la cuenta.

SOURCEFORGE: Es un repositorio de código fuente desde el cuál son controlados varios


proyectos únicamente de tipo “software libre”. Es capaz de soportar varios sistemas de control de
versiones, entre los que se encuentran CVS, Subversion, Git, Bazaar, Mercurial, entre otros.

LAUNCHPAD: Es una plataforma de desarrollo colaborativo de software. Está desarrollada y


mantenida por Canonical Ltd, la empresa detrás del desarrollo de Ubuntu. Los repositorios de
Launchpad usan Bazaar como sistema de control de versiones.
En general este servicio es gratuito, pues va orientado al alojamiento de código de software libre.
Sin embargo, obliga a registrarse a la persona que desee enviar reportes de errores o comentarios
acerca de los códigos.
REFERENCES
[1] González, A., and Martín, I. (2014). Avances en Informática y automática. Salamanca, España:
Universidad de Salamanca. Recovered April 03, 2019.

[2] Joint Developer. (January 28, 2017). Sistemas de Control de Versiones, qué son y por qué amarlos. A
Medium Corporation. Recovered April 01, 2019., from https://medium.com/@jointdeveloper/sistemas-
de-control-de-versiones-qu%C3%A9-son-y-por-qu%C3%A9-amarlos-24b6957e716e

[3] Chacon, S., and Straub, B. (2019). Pro Git: Everything you need to know about Git (Second Edition).
New York: Apress. Recovered April 04, 2019.

También podría gustarte