El Bazar

Todo | Linux | General | Java
« Moneydance gratis | Main | Vulnerabilidad seria... »

20040204 Wednesday February 04, 2004

Es la hora de Subversion

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:

Ya ha llegado la hora de Subversion. En cuanto tenga algo de tiempo me parece que algunos proyectos del trabajo van a abandonar CVS.

(2004-02-04 23:29:09.0) Permalink Comentarios [3]

URL de la referencia: http://weblogs.javahispano.org/jmrus/entry/es_la_hora_de_subversion
Comentarios:

Muy buena entrada sí señor, y muy documentada.
<br/><br/>
Me llama la atención que exista ya TortoiseSVN, ya que yo he utilizado TortoiseCVS y está bastante bien (muy sencillo, pero muy graciosa su integración con el explorador de windows).
<br/><br/>
Ya sólo me falta SmartSVN jeje

Enviado por Miki en February 05, 2004 a las 10:54 AM CET #

[Trackback] Subversion es un gestor de versiones de código fuente bastante potente. Tiene features como permitir la eliminación y renombrado de archivos (conservando la historia), integración con Apache (lo que nos permite navegar por la última versión del cÃ...

Enviado por Principia Programmatica en March 17, 2004 a las 09:02 AM CET #

Gracias por tan excelente informe. Estoy en el trabajo de instalar una herramienta que me permita realizar el control de versiones, veo en Subversión una buena alternativa. Tengo la siguiente inquietud: Puedo definir y darle labels o nombres a las versiones que va generando Subversión.
Muchas gracias.

Enviado por Juan Carvajal en October 12, 2004 a las 06:09 PM CEST #

Enviar un comentario:

Nombre:
Correo electrónico:
URL:

Su comentario:

Sintaxis HTML: Deshabilitado