Subversion ( SVN) y Concurrent Versions System (CVS ) son dos de los sistemas de control de versiones más conocidas y ampliamente utilizado para la gestión de los cientos de documentos que existen en el proyecto de programación típico. Ambos , a su manera , permitir que todo un equipo de programadores que trabajan en los mismos archivos y reducir al mínimo el tiempo y esfuerzo que se necesita para fusionar los cambios , pero son muy diferentes en la forma en que trabajan. Almacenamiento Formato
CVS almacena todos los archivos en el proyecto en una serie de ramificación de las carpetas del sistema de archivos. Por otro lado , SVN almacena sus archivos en una base de datos : ya sea BerkleyDB o FSFS . Esto hace más lento que CVS SVN, pero también lo hace para que los archivos CVS se pueden recuperar en un desastre usando sólo herramientas del gestor de archivos comunes, como el Explorador de Windows o el shell bash. Bases de datos de SVN pueden estar dañados , y se requieren herramientas especiales para recuperar archivos fuera del depósito cuando esto sucede.
Transacciones
proyectos tiendas CVS en un archivo por presentar base . Esto hace que el sistema un poco más sencilla , ya que el programador puede comprobar entrando y saliendo archivos individuales , pero tiene un efecto secundario desagradable . Los programadores no tienden a realizar modificaciones en un solo archivo. Más bien , los cambios en un archivo requieren pequeñas modificaciones a los demás. Con CVS , es posible que un problema de la red para hacer que algunos de los archivos modificados para ser actualizados en el repositorio , lo que podría romper la estructura y causando una gran confusión en el equipo si el problema no se detecta inmediatamente. SVN archivos como un proyecto y lo hace con un concepto de "transacción " : o bien todos los cambios que se han comprometido con éxito al servidor, o nada se ha comprometido
Tipos de archivo
.
CVS fue diseñado para tratar sólo con los datos de texto sin formato ( que se encuentra normalmente en el código fuente ) . Sin embargo , es un programa de programación rara que no incluya al menos algunos datos que no son de texto, como iconos gráficos , punteros de ratón de encargo y logotipos. CVS puede ser modificado para hacer frente a los datos no son de texto , pero SVN soporta todos los tipos de archivos directamente sin ninguna otra modificación o personalización.
Ramas
CVS , cada archivo se asigna automáticamente a su propio número de versión . Cuando el proyecto está desprotegido, se ofrece la versión más reciente de cada archivo para el programador. En SVN , todo el proyecto tiene una versión . Aunque los archivos no se duplican innecesariamente en el servidor ( para ahorrar espacio) , la interfaz proporcionada al usuario es que cada confirmación jamás se ha hecho con el servidor es inmediatamente accesible a ellos por el número de versión , sin tener que especificar construir fechas o números de marcas .