Sistema de Control de Versiones

Control de Versiones
Definición
El control de versiones es un sistema que permite al equipo de software gestionar los cambios en el código fuente a lo largo del tiempo. Esta herramienta de software facilita a los desarrolladores colaborar en diferentes proyectos, separando sus tareas mediante ramas (branches). También ofrece la posibilidad de volver a versiones anteriores para comparar y corregir errores si es necesario.
Importancia
Los puntos mencionados anteriormente son especialmente importantes para el trabajo orientado al desarrollo, ya que permite que múltiples desarrolladores o equipos trabajen de forma independiente sin afectar el trabajo de los demás. Ayuda a construir, probar e integrar funciones de manera manejable.
Sistemas de Control de Versiones
Definición
Los Sistemas de Control de Versiones (VCS), también conocidos como SCM (Gestión del Código Fuente) o RCS (Sistema de Control de Revisiones), son herramientas de software para llevar un registro de los cambios en el código fuente a lo largo del tiempo.
Tipos de Sistemas de Control de Versiones
Generalmente, los equipos de software eligen entre tres tipos de sistemas de control de versiones. Son:
Sistemas de Control de Versiones Locales
Los VCS locales se crearon para evitar problemas como la confusión de directorios o escribir/copiar accidentalmente en el archivo incorrecto. Es una base de datos simple que mantiene todos los cambios en los archivos bajo control de revisión. Una de las herramientas VCS más populares fue un sistema llamado Revision Control System (RCS), que aún se distribuye hoy en día, aunque es un sistema de control de versiones más antiguo. Permite a los usuarios realizar revisiones de un documento, confirmar cambios y fusionarlos. RCS fue desarrollado originalmente para programas, pero también es útil para documentos de texto o archivos de configuración que se revisan con frecuencia.

Sistemas de Control de Versiones Centralizados
En los sistemas centralizados, todos los archivos versionados, así como una serie de clientes que extraen archivos desde ese lugar central, se incluyen en un único servidor. Durante muchos años, este ha sido el estándar para el control de versiones. Los Sistemas de Control de Versiones Centralizados son CVS, Subversion y Perforce.

Sistemas de Control de Versiones Distribuidos
En los Sistemas de Control de Versiones Distribuidos (DVCS), los clientes replican completamente el repositorio, incluyendo su historial completo. Si el servidor con el que colaboraban estos sistemas falla, los repositorios de los clientes pueden copiarse de nuevo al servidor para restaurarlo. Los Sistemas de Control de Versiones Distribuidos son Git, Mercurial, Bazaar o Darcs.
Beneficios de los Sistemas de Control de Versiones
Los principales beneficios de los Sistemas de Control de Versiones son los siguientes:
- Historial de cambios a largo plazo Los cambios realizados por los desarrolladores, incluyendo la creación, modificación y eliminación de archivos a lo largo de los años, pueden verse en el historial. Esto permitirá volver a la versión anterior para analizar errores y solucionar problemas.
- Ramificación y fusión La ramificación (branching) ayuda a trabajar de manera independiente sin interferir en el trabajo de los demás. La fusión (merging) une los trabajos y permite ver si existen conflictos entre ellos.
- Trazabilidad Capacidad de rastrear cada cambio y conectarlo con software de gestión de proyectos y seguimiento de errores, así como de anotar cada cambio con un mensaje que describa el propósito del mismo.
Práctica
¿Cuál de los siguientes no es un tipo de Sistema de Control de Versiones?