Control de versiones software: guía de compra
Los sistemas de control de versiones permiten a los desarrolladores trabajar simultáneamente en código y aislar su propio trabajo a través de lo que se conoce como ramas. Las sucursales mantienen los cambios de código protegidos de los cambios en otras sucursales, pero pueden combinarse si y cuando el desarrollador está listo. Los sistemas de control de versiones permiten a los desarrolladores realizar un seguimiento automático de su trabajo, ver un historial de todos los cambios y volver a versiones anteriores de un proyecto cuando sea necesario. Todos los cambios de código y ramas se mantienen en un repositorio (a menudo denominado "repo").
Los sistemas de control de versiones son utilizados por los equipos de desarrollo de software para agilizar el proceso de desarrollo, administrar código para múltiples proyectos y mantener un historial de cambios de código. Al elegir un sistema de control de versiones, los usuarios a menudo necesitan una solución de alojamiento de control de versiones para alojar su repositorio maestro donde los desarrolladores cometen sus cambios de código. Los desarrolladores a menudo utilizan clientes de control de versiones para administrar la funcionalidad de sus sistemas de control de versiones a través de una interfaz gráfica de usuario (GUI). Los sistemas de control de versiones se integran con una variedad de herramientas de desarrollo de software, incluyendo IDE, software de automatización de compilación y proveedores PaaS.
Para poder ser incluido en la categoría Sistema de control de versiones, un producto debe:
Proporcionar un mecanismo para los desarrolladores para realizar un seguimiento de los cambios de código
Permitir a los desarrolladores ver un historial de cambios
Permitir que los desarrolladores trabajen en los mismos archivos de código al mismo tiempo
Permitir a los desarrolladores aislar su código a través de ramificaciones
Combinar el código de diferentes ramas en el comando
Mostrar conflictos de desarrolladores en las combinaciones de códigos y permitir a los desarrolladores resolverlos
Permitir a los desarrolladores revertir sus cambios a un estado anterior