Wednesday February 04, 2004
La encuesta del mes pasado de javaHispano dejó bien claro que CVS es el sistema de control de versiones más usado con diferencia, quizás no tanto por sus ventajas (que las tiene y son muchas) como por una cuestión de tradición. Pero CVS también tiene unos cuantos defectos, uno de los más importantes es que sólo trabaja con el contenido de ficheros, de manera que pierde el versionado cada vez que se copia, mueve o renombre un fichero. En Java es un inconveniente especialmente molesto, toda clase pública debe guardarse en un fichero con el mismo nombre y generalmente en un directorio que refleje el nombre del paquete (esto último no es obligatorio pero es lo más habitual), lo que significa que algunas refactorizaciones dejan al CVS ciego. No es de extrañar, CVS ha progresado a partir de un concepto obsoleto como RCS a base de parches.
En mayo de 2004 nació un proyecto open source financiado por una compañía para crear una evolución de CVS, se llamaría Subversion o de forma abreviada SVN. Hace ya mucho tiempo que superaron las deficiencias de CVS conservando al mismo tiempo buena parte de sus virtudes, algunas de las mejoras incluyen la gestión de directorios (por lo que es consciente de cuando se copian, mueven o renombran ficheros), datos arbitrarios asociados a los ficheros o metadata (propiedades como el tipo de contenido, los atributos, notas o cualquier otra cosa), gestión de ficheros binarios, rapidez (en la transferencia de datos o al generar las ramas) o la comunicación que se realiza con el servidor Apache bajo el protocolo WebDav (de quien puede aprovechar características como la autentificación o la encriptación por ejemplo). Además la migración es fácil ya que se puede convertir un repositorio CVS en Subversión con la herramienta cvs2svn.
Desde el 31 de agosto de 2001 el equipo de Subversion empezó ya a utilizar su propio producto para almacenar su código fuente, la estabilidad siempre fue uno de los objetivos y pueden presumir de no haber perdido ningún dato desde entonces. En estos momentos se encuentran en la versión 1.0.0-RC1 (beta), la versión definitiva está prevista para finales de este mes, concretamente el 23 de febrero. En cualquier otra aplicación la palabra "beta" debería ser sinónimo de "cuidado", pero es que no todos la utilizan con el mismo criterio, según uno de los miembros del equipo:
"Subversion es muy estable. La única razón por la que no le hemos llamado ya 1.0 es porque estamos hablando de un sistema de control de versiones en el que se van a almacenar millones de dolares en propiedad intelectual. La gente necesita sentirse segura al hacerlo, y eso significa un nivel de conservadurismo que no tiene lugar en otro tipo de software".
Otra clave son las herramientas, clientes y utilidades CVS los hay a patadas. Afortunadamente con Subversion, que se ha destacado como la alternativa open source a CVS, el panorama es bastante bueno, además de los clientes habituales muchas otras aplicaciones como Ant o Maven ya se entienden con él.
Si alguno se anima aquí tiene algunos enlaces que pueden ser interesantes:
(2004-02-04 23:29:09.0)
Permalink
Comentarios [3]