Sistema de control de versiones – ¿Qué es?
por Luis Zurro el 11/09/17
Estoy preparando una serie de entradas sobre el uso del sistema de control de versiones GIT, tanto a nivel básico como avanzando, pero antes de eso, voy a describiros que es un sistema de control de versiones.
¿Qué es un sistema de control de versiones?
Es un sistema software que registra los cambios realizados sobre un conjunto de archivos a lo largo del tiempo, de modo que es posible navegar entre diferentes versiones y recuperar su contenido más adelante.
La gran parte de los sistemas de control de versiones permiten comparar contenido de ficheros, ver quién y cuándo se ha realizado un cambio y revertir a una versión concreta todo el proyecto o solo ciertos ficheros.
Aunque su uso más extendido es para ficheros de texto plano y especialmente en grupos de desarrollo, es posible usar los sistemas de control de versiones con cualquier tipo de fichero, ya sean imágenes, ejecutables binarios, vídeos, etc. En estos casos la comparativa de cambios entre ficheros se dificulta, ya que la comparación a nivel de bits no va a decir nada al común de los mortales.
Tipos de sistemas de control de versiones
Se pueden catalogar 3 grandes tipos de sistemas de control de versiones
Control de versiones local
Manual
Antes de la aparición de los sistemas de control de versiones, la única forma de historificar y guardar diferentes versiones para posterior consulta, era crear copias manuales de los proyectos, generalmente con la fecha del cambio como nombre de la carpeta junto a algún comentario.
Este método es muy propenso a errores, ya que es fácil no darse cuenta en que directorio estás trabajando y modificar un fichero de una versión anterior, perdiendo su contenido.
Software
Para solventar los problemas de base del sistema manual, se desarrollaron los primeros sistemas de control de versiones, lo cuales se trataban de una simple base de datos que contenía un registro de todos los cambios realizados.
Las principales desventajas de este planteamiento son que no permiten colaboración entre usuarios, y que ante un fallo o perdida de la base de datos de versiones, se pierde todo el histórico, siendo solo recuperable si se disponía de alguna copia de seguridad externa.
Ejemplos: RCS (Revision Control Sytem)
Control de versiones centralizado
Para permitir la colaboración de diferentes personas en un proyecto, se crearon los sistemas de control de versiones centralizados. En estos sitemas el repositorio con los cambios se encuentra en un único servidor, del cual cada uno de los colaboradores del proyecto obtiene y envía los cambios.
Esta ventaja no es únicamente para los colaboradores, pues los administradores pueden controlar de forma detallada lo que realiza cada uno de los miembros.
El inconveniente que presenta este tipo de control de versiones es que en caso de fallo del servidor central se pierde toda la evolución del proyecto. Esto se puede solventar fácilmente con un sistema de backups. (Igual que en los sistemas locales).
También, durante una indisponibilidad del servidor, los miembros no serán capaces de revisar cambios anteriores ni versionar los actuales hasta que este vuelva a estar disponible.
Ejemplos: CVS (Concurrent Versioning System), SVN (Subversion)
Control de versiones distribuido
La última vuelta de tuerca a los sistemas de control de versiones, donde se mezclan los dos sistemas previos.
Cuando se descarga el contenido de un repositorio con un sistema de control de versiones distribuido, no solo se descarga la instantánea seleccionada, si no que se replica completamente el repositorio. Cada vez que se actualiza el contenido local, se replican todos los cambios del servidor.
Gracias a este planteamiento, si el sistema del servidor resultase corrupto, podría usarse cualquiera de las replicas de los usuarios para volver a disponer del servidor con su historia completa. Igualmente, ante una indisponibilidad temporal del repositorio central, los colaboradores podrían seguir versionando cambios hasta que este volviese a estar disponible, momento en el que podrían enviar el conjunto de versiones.
Ejemplos: GIT, Mercurial
Comparativa
A modo resumen, os dejo una tabla comparativa con las principales caractéristicas de cada uno de los sitemas comentados
Local | Centralizado | Distribuido | |
---|---|---|---|
Colaboración/Trabajo en equipo | |||
Revisión por administrador | |||
Permite trabajar ante fallos del servidor | |||
Servidor recuperable en caso de error |
Espero que esta introducción os haya resultado de utilidad. Cualquier comentario, como siempre, será más que bievenido, al igual que cualquier posible duda que pueda surgiros.
¡Nos vemos en los comentarios comiendo Pistachitos!
Basado en: https://git-scm.com/book
Nacido en 1988. Desarrollador por vocación y técnico especializado en calidad y rendimiento por profesión. Desde pequeño he tenido muy claro que quería dedicarme al mundo de la informática.
Amante de los videojuegos, series, libros y gatos.
Kingston DataTraveler Exodia DTX/128GB Flash Drive USB 3.2 Gen 1 - with Protective Cap and Keyring in Multiple Colours
6,95 € (a partir de 01 diciembre, 2024 22:38 GMT +01:00 - Más informaciónProduct prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on [relevant Amazon Site(s), as applicable] at the time of purchase will apply to the purchase of this product.)ASUS Monitor VA24EHF Eye Care Gaming 24" (IPS, Full HD, sin marcos, 100 Hz, sincronización adaptativa, MPRT de 1 ms, HDMI, luz azul baja, sin parpadeos, montaje en pared)
79,00 € (a partir de 01 diciembre, 2024 22:38 GMT +01:00 - Más informaciónProduct prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on [relevant Amazon Site(s), as applicable] at the time of purchase will apply to the purchase of this product.)Lenovo IdeaPad 1 Gen 7 - Ordenador Portátil 15.6" FHD (AMD Ryzen 5 7520U, 16GB RAM, 512GB SSD, AMD Radeon 610M Graphics, Wi-Fi 6, Sin Sistema Operativo) Gris - Teclado QWERTY Español
Recuperando el precio ahora.
(a partir de 01 diciembre, 2024 22:38 GMT +01:00 - Más informaciónProduct prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on [relevant Amazon Site(s), as applicable] at the time of purchase will apply to the purchase of this product.)
Comentarios Recientes