Más de Subversion

Hace poco me tocó hacer una rama CVS de los proyectos para estabilizar una versión para unas pruebas con el cliente. Ya se sabe, rama del repositorio del proyecto y rama de todos los repositorios con librerías que utilice el proyecto.

Pues bien, ha sido horrible. Son cuatro o cinco repositorios y cada uno de los proyectos/librerías a "enramar" tienen fácilmente tres mil ficheros java. Eché toda la tarde en hacer las dichosas ramas. Primero un update, luego el cvs tag para poner una etiqueta justo en el punto donde comienza la rama y luego el cvs tag -b para crear la rama. Al hacerlo CVS fichero a fichero, media hora larga con algunos de los repositorios mientras cvs hace el trabajo.

Se me ocurrió, harto de ello, montar un servidor de subversion, migrar alguno de los repositorios CVS a subversion (usando cvs2svn) y mirar a ver cuánto tarda subversion en hacer la rama (svn cp). Es casi inmediato, ya que realmente no realiza la copia real de todos los ficheros (lo hará cuando se vayan modificando si se van modificando) y tampoco tiene que andar recorriendo todos los ficheros para ver su versión actual (CVS tienen un número de versión para cada fichero, mientras que subversion tiene un único número para todo el repositorio).

Todo el mundo habla que los sistemas de control de versiones distribuidos, estilo Bazaar o Git son maravillosos. También se habla mejor de Subversion que de CVS, aunque no todos lo hacen. A mí realmente todo eso me parece bien, pero mientras no veo una necesidad real o una mejora importante, no veo tampoco necesidad de cambiar. Ahora sí he encontrado un motivo, así que es cuestión de empezar a mirar en serio la posibilidad de migrarlo todo a Subversion.

De momento descarto Bazaar o Git por tener menos soporte para los IDEs habituales (eclipse en concreto). Tampoco tengo muy claro lo veloz que puede ser hacer un branch de un repositorio grande si eso implica la copia completa de todo el repositorio, con su historia (ya digo, repositorios de tres mil clases java con cuatro o cinco años de historia y alrededor de veinte desarrolladores de media desarrollando día a día).

Esta entrada ha sido publicada en CVS, Subversion y etiquetada como , , . Guarda el enlace permanente.

2 respuestas a Más de Subversion

  1. blaxter dijo:

    Yo nunca uso svn o git desde dentro de un ide. Quiero tener el control de qué commiteo.

    Aparte que una GUI para git, sería algo realmente complejo de hacer. Mayormente porque sería totalmente inútil y laborioso en comparación con usarlo desde consola.

  2. Chuidiang dijo:

    Buenas:

    Estoy de acuerdo contigo a medias. Yo soy de los que le gusta todo esto y me sé bien los comandos de cvs, subversion, bazaar o puedo aprender rápidamente los de git, así que uso indistintamente el IDE o la línea de comandos, lo que me pille más a mano. Desgraciadamente, sólo el 3% de la gente (tú, yo y otro), somos así. El otro 97% no tiene ni puñetera idea de los comandos y como no se lo des con el IDE, no saben usar un sistema de control de versiones, y aun así tampoco. 🙁

    Con el IDE también tienes control total de lo que commiteas. Haces el commit y te saca una ventana de confirmación con las cosas que va a meter (al menos, así lo hace eclipse). E incluso es más cómodo que la línea de comandos (al menos con CVS) para algunas cosas.

    En cuanto a la GUI para git, igual que para todos los demás. Yo no uso GUI ni de CVS ni de Subersion, lo hago con el IDE o con comandos. Pero ya te he dicho que tú y yo, junto al otro, somos un 3% de los programadores. Una GUI para git sería muy útil para el otro 97% de la gente, y aún así….

    Por ello, si elijo un sistema de control de versiones para cerca de treinta o cuarenta desarrolladores que somos, debo pensar en todos y no sólo en mí (el otro 2% trabajais en otra empresa). Y de hecho, una de las cosas que me echa atrás es el largo tiempo de aprendizaje que tendrán muchos de ellos para pasarse de CVS a Subversion (y eso que en el 90% de los comandos sólo hay que cambiar cvs por svn)

    Se bueno.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.