Esta es una “medio traducción” del artículo The Top Ten Subversion Tips for CVS Users, el artículo es muy bueno y me hizo click instantáneamente, ya que reflejaba mi propia experiencia “brincando” entre ambos mundos.

La mayor parte del artículo original se basa en la información en Appendix A. Subversion for CVS Users tomado del clásico libro de Subversion disponible en la red.

1. Usa el comando status

Típicamente para verificar los cambios que uno ha realizado en su sandbox con CVS se hace un cvs -n update, el parámetro -n previene que se actualice ningún archivo.

En el caso de Subversion la consulta del estado del Sandbox y la actualización del mismo son comandos bien diferenciados, para consultar usas svn status.

2. Mueve los archivos

Muy de vez en cuando, cuando se trabaja con CVS uno se ve en la necesidad de mover cosas como un directorio de un sitio a otro. Si no se quiere perder la “historia” de los archivos bajo el directorio es necesario hackear directamente el repositorio, haciendo antes un respaldo por supuesto ;-)

En el caso de Subversion esta limitación no existe, no sólo se puede mover archivos de un sitio a otro con el comando svn move, sino que además la historía persiste y la ejecución del propio comando queda documentado.

3. ¿Taggear y branchear? Copias, son sólo copias

Cuando se aplica un tag o se crea un branch en CVS este cambio en repositorio es metadata. Mientras que en Subversion estas operaciones se traducen sencillamente en copias (cheap copies) hacia los directorios /tags y /branches, nada más.

4. No borras y actualizas, reviertes

Cometiste un error en tu sandbox, lo que en principio está bien porque ese es el sitio para cometer errores ¿Qué haces si tu código está bajo CVS? Borras el código chucuto, o incluso el directorio y vuelves a hacer checkout.

SVN provee el comando svn revert, que inclusive puedes ejecutar si no estás conectado el respositorio.

5. Tus archivos son los que ingresas

Por omisión CVS realizará la conversión de los caracteres que marcan un “fin de línea” entre los estándar *nix y Windows para aquellos archivos que hayan sido ingresados como “texto”, adicionalmente realizará la expansión de keywords incluyendo en los archivos información como el usuario que realizó el commit y la fecha del mismo.

Subversion tiene la política contraria, lo que ingresas al sistema es lo que sale, los archivos no son modificados sin que los usuarios lo sepan. Si bien entiendo el racional detrás de esta política, he de confesar que en ambientes de trabajo en equipo la expansión de los keywords es extremadamente práctica.

6. Log

Nada que discutir, el comando svn log es muuuucho más útil, informativo y amigable que el cvs log.

7. Undo

Una particularidad del comando svn merge de Subversion es que sirve para deshacer rápidamente un cambio al que se le hizo commit por error especificando un changeset y la opción -r, lo que tiene como efecto aplicar los cambios en orden inverso.

8. Resurreacción For Dummies

Aquellos que por error han hecho commit de un delete erróneo en CVS saben que esto implica un viaje al inframundo del ático (attic ;-)

Subversion es mucho más comprensivo con los errores humanos, y nos permite (una vez que ubicamos la revisión adecuada) copiar el archivo desde la revisión que nos interese recuperar, incluyendo su historia pasada.

9. Cambia de rama

Si quieres cambiar tu copia de trabajo para reflejar una rama específica del repositorio, como un branch puedes usar el comando svn switch que suele ser más eficiente que sacar una rama completa desde cero al recuperar sólo las diferencias entre tu copia de trabajo y la rama especificada. En CVS obtendrías el mismo efecto con un cvs update -r

10. Eso está resuelto

(Cosecha propia) Una características que gusta muchísimo de Subversion es la necesidad de marcar un conflicto como “resuelto” en forma explícita antes de poder hacer commit con el comando svn resolved

Si embargo, y en honor a la verdad es necesario que se revisen el fork del CVS en el que trabaja la gente de March Hare Software que en muchos puntos brinda las características de Subversion a CVS.


1 Respuesta a “Subversion: 10 consejos para usuarios de CVS”

  1. 1 Damian Fossi

    Gracias, esta bueno el artículo


RSS feeds

Suscríbete a nuestros RSS Feeds