Documentos de Académico
Documentos de Profesional
Documentos de Cultura
¿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.
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
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
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:
[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.