--- title: Version Control System localeTitle: Sistema de control de versiones --- ## Sistema de control de versiones Los sistemas de control de versiones (VCS), también llamados Source Code Management (SCM), son herramientas que se utilizan para rastrear cambios en archivos, administrar versiones y facilitar la edición colaborativa de archivos. Hay principalmente 2 tipos de VCS: * Sistema de control de versiones centralizado Donde un repositorio central es autoritario. La arquitectura asociada es cliente / servidor. Los primeros VCS (CVS, SVN ...) fueron el Sistema de Control de Versiones Centralizado. * Sistema de control de versiones distribuido Donde el repositorio múltiple cambia la modificación. La arquitectura asociada es mayormente de igual a igual, pero un repositorio puede ser declarado como autoritario. Los VCS modernos más utilizados (Git, Mercurial ...) son los sistemas de control de versiones distribuidas. ### ¿Por qué usarlo? * **Historial de cambios** : VCS permite al usuario navegar y buscar todos los cambios que se registran automáticamente con información útil (fecha, autor ...) y * **Versiones / etiquetas** : el usuario puede buscar / recuperar el estado específico de los archivos que se han etiquetado con etiquetas y nombres de versión * **Ramificación / fusión** : el sistema de control de versiones distribuido facilita el mantenimiento de la rama paralela de archivos y la combinación parcial o total cuando sea necesario. * **Operaciones atómicas** : todos los VCS modernos proporcionan operaciones atómicas: se garantiza que todas las modificaciones tendrán éxito o fallarán en su totalidad, lo que garantiza que los archivos estén siempre en un estado coherente. ### Sistema de control de versiones más popular * Git _Git_ es un sistema de control de versiones distribuido y probablemente el VCS más utilizado en la actualidad con _Mercurial_ . * Mercurial _Mercurial_ es un sistema de control de versiones distribuido y probablemente el VCS más utilizado hoy en día con _Git_ . * CVS _CVS_ es un antiguo SCM que fue proeminente antes de que se extendiera _SVN_ . _CVS_ y _SVN_ ahora están en desuso en favor de Distributed Version Control System como _Git_ y _Mercurial_ . * SVN / Subversion _SVM_ es un SCM antiguo que sucedió a _CVS_ . Finalmente, _SVN_ quedó en desuso por la amplia adopción del Sistema de control de versiones distribuido como _Git_ y _Mercurial_ ### Más información: [CVS](http://savannah.nongnu.org/projects/cvs) [Git](https://git-scm.com/) [Mercurial](https://www.mercurial-scm.org/) [SVN](http://subversion.tigris.org/) [Control de versiones en Wikipedia](https://en.wikipedia.org/wiki/Version_control)