CVSNT es un sistema de control de versiones compatible con el sistema de versiones concurrentes (CVS) y originalmente basado en él, pero mientras que este último era popular en el mundo del código abierto , CVSNT incluía características diseñadas para desarrolladores que trabajaban en software comercial , como compatibilidad con Windows, autenticación de Active Directory, ramas reservadas/bloqueo, listas de control de acceso por archivo y nombres de archivo Unicode. En CVSNT también se incluyeron varias herramientas RCS actualizadas para funcionar con compiladores más recientes y compatibles con CVSNT.
CVSNT fue desarrollado inicialmente por usuarios que no estaban conformes con las limitaciones de CVS 1.10.8, para solucionar las limitaciones relacionadas con la ejecución del servidor CVS en Windows y el manejo de nombres de archivo para plataformas que no distinguen entre mayúsculas y minúsculas. March Hare Software comenzó a patrocinar el proyecto en julio de 2004 para garantizar el futuro del proyecto y emplear al gerente de proyecto original en el desarrollo y soporte comercial de CVSNT.
CVSNT era comercialmente popular, con una serie de IDE comerciales que incluían soporte para él, incluyendo Oracle JDeveloper, [2] IBM Rational Application Developer, [3] e IBM WebSphere Business Modeler. [4] La variación CVSNT de las herramientas RCS también se usaba ampliamente, incluso por Apple, Inc. [ 5] CVSNT era tan omnipresente en la programación comercial que a menudo se lo denominaba simplemente CVS , [6] a pesar de que los desarrolladores de CVS de código abierto habían declarado públicamente que CVSNT era significativamente diferente y debería mantenerse como un proyecto separado. [ investigación original? ]
Se han escrito varios libros sobre CVSNT, incluidos CVSNT (CVS para NT) [7] y All About CVS . [8]
CVSNT realiza un seguimiento del historial de versiones de un proyecto (o conjunto de archivos).
CVSNT se basa en la misma arquitectura cliente-servidor que el Sistema de Versiones Concurrentes : un servidor almacena las versiones actuales del proyecto y su historial, y los clientes se conectan al servidor para obtener una copia completa del proyecto, trabajar en esta copia y luego registrar sus cambios. Un servidor puede ser un servidor proxy o de almacenamiento en caché (un servidor de solo lectura que pasa las solicitudes de escritura a otro servidor) o un servidor de lectura y escritura (normal).
Por lo general, el cliente y el servidor se conectan a través de una WAN o Internet , pero ambos pueden ejecutarse en la misma LAN o incluso en la misma máquina. El software del servidor se ejecuta igualmente bien en Unix y Windows . Es compatible con clientes CVS y admite una gran cantidad de metodologías de administración de configuración, incluido el método no reservado compatible con CVS y el método reservado similar a VSS . [9] [10]
La naturaleza modular de CVSNT permite a los administradores de servidores habilitar y deshabilitar protocolos dinámicamente, así como cargar funciones adicionales a través de activadores como Auditoría, Integración de seguimiento de defectos, Pago automático (para servidores web) y más.
Las características del servidor CVSNT incluyen: [11]
Los usuarios que no estaban conformes con las limitaciones de CVS 1.10.8 comenzaron a desarrollar CVSNT. Las limitaciones originales abordadas estaban relacionadas con la ejecución del servidor CVS en Windows y el manejo de nombres de archivo para plataformas que no distinguen entre mayúsculas y minúsculas.
La primera versión se publicó en 1998 y desde entonces se han publicado versiones estables con características cada tres o cuatro meses aproximadamente. A principios de 2002 se volvió a incorporar soporte para Linux y Unix a CVSNT. [17]
Desde el inicio del proyecto hasta octubre de 2002, CVSNT y CVS utilizaron números de versión idénticos y CVSNT se "mantuvo sincronizado" con las características y el código base de CVS. Después de octubre de 2002, CVSNT comenzó su propia secuencia de versiones comenzando con "2" para indicar una desviación significativa de sus orígenes en CVS. Desde entonces, no ha habido una versión estable de CVS. Sin embargo, la inestable CVS 1.12 contiene algunas de las características más antiguas implementadas originalmente en CVSNT. Debido a esta historia compartida, todas las características de CVS 1.11 [18] están incluidas en CVSNT y la mayoría de las de CVS 1.12 (por ejemplo: la característica 'ls' [19] de 1.12 es funcionalmente compatible con la característica 'ls' [20] de CVSNT ).
En 2003, el proyecto CVSNT SJIS lanzó una versión japonesa de CVSNT que incluía soporte para nombres de archivos SJIS y codificación de archivos.
March Hare Software comenzó a patrocinar el proyecto en julio de 2004 para garantizar el futuro del proyecto y emplear al gerente de proyecto original en el desarrollo de CVSNT y el soporte comercial.
En febrero de 2005, los servidores del proyecto se trasladaron a la versión 2.5 de CVSNT y comenzaron las versiones inestables de un nuevo servidor que incorporaba complementos de servidor, listas de control de acceso (ACL) , conversión de conjuntos de caracteres de nombres de archivo y detección automática de cliente/servidor. En octubre de 2005, se lanzó la primera suite comercial de CVS, que incorporaba complementos y clientes no GPL para CVSNT. En noviembre de 2005, CVSNT se mejoró para incorporar las características del proyecto CVSNT SJIS. [ cita requerida ]
En marzo de 2006, los servidores de proyectos se trasladaron a la versión 2.6 de CVSNT y comenzaron las versiones inestables del nuevo servidor backend. Este backend incorporaba un repositorio de base de datos SQL parcial para facilitar un mejor rendimiento del servidor y funciones de servidor más complejas. Cuando se abandonó el trabajo en CVSNT 2.6 y se trasladó a EVS/CVSNT 3.1, el servidor de proyectos volvió a la versión 2.5.04.
En noviembre de 2008, el proyecto lanzó la versión 2.5.04 con compatibilidad con la replicación de repositorios en varios sitios o cachés de repositorios "locales" y funciones de rendimiento específicas para el uso de archivos de gran tamaño en una WAN. El proyecto comenzó a publicitar a los colaboradores de forma más agresiva, incluida la colocación de anuncios en los comentarios de las confirmaciones (que se pueden desactivar). [ cita requerida ]
En marzo de 2010, el proyecto lanzó la versión 2.5.05 con un servidor que siempre se ejecuta en Unicode, soporte nativo de Windows crypt y schannel y soporte para nombres de dominio internacionalizados .
El proyecto está en estado activo, con más lanzamientos de CVSNT 2.5 planificados y una evolución continua de CVSNT/EVS 3.1. CVSNT/EVS implementará un repositorio de base de datos SQL completo para soportar más funciones complejas de servidor y cliente. También está planificada una capa de emulación RCS para CVSNT/EVS 3.1 para soportar sistemas heredados. [ cita requerida ]
El 30 de junio de 2010, [21] March Hare retiró la edición Community de cero dólares, sin embargo, la edición comercial "CVS Suite" con una nueva versión CVSNT 2.8 y soporte se desarrolla activamente [22] y está disponible en la tienda web, [23] al igual que las instantáneas de las versiones anteriores de la comunidad (sin soporte, y se requiere una tarifa para descargar). [24] El soporte por correo electrónico está disponible para los clientes, pero la lista de correo/grupo de noticias de la comunidad se ha eliminado. La descripción del servidor CVS público para el código fuente se actualizó con la advertencia "no se garantiza que esté disponible las 24 horas, los 7 días de la semana, [25] es proporcionado por un voluntario y puede retirarse en cualquier momento". [26] Este acuerdo parece cumplir con los requisitos de la GPL , ya que el software ofrecido para descarga incluye una oferta escrita para recibir el código fuente, [27] como lo requiere explícitamente la licencia. [ ¿Investigación original? ]
El software que incorpora CVSNT incluye:
March Hare planea ofrecer las siguientes características en la próxima versión: [31]