Usar un repositorio subversion

Subversion es un sistema de control de versiones concurrente. Su objetivo es muy similar al de CVS aunque tiene grandes ventajas sobre éste, y por eso, cada día muchos proyectos de desarrollo de software cambian a subversion.

En esta receta se explica cómo realizar las operaciones básicas con un repositorio subversion. Si necesitas crear y publicar un repositorio consulta esta otra receta

Crear un módulo

Cuando se comieza un nuevo desarrollo es necesario crear un nuevo módulo en el repositorio (algo similar a un directorio en el sistema de ficheros local). Para ello, supondremos que ya existe un repositorio accesible en http://example.com/repos. Tienes que ejecutar algo similar a:

$ svn import /home/user/job http://example.com/repos/myjob

Siendo job el directorio que contiene los ficheros del nuevo proyecto. Esto creará el módulo myjob en el repositorio repos del host example.com y subirá allí el contenido de /home/user/job, creando así la versión inicial.

Descargar un módulo

Esta es la operación más habitual y también una de las más simples:

$ svn checkout http://example.com/repo/anotherjob

Esto obtiene una copia de la versión HEAD del módulo anotherjob. Crea un directorio con el mismo nombre en el directorio actual.

Actualizar una copia local

Suponiendo que haya nuevas versiones disponibles del módulo del ejemplo anterior, puedes actualizar tu copia a la última versión con:

anotherjob$ svn update

Gestión de conflictos

ToDo

Añadir un fichero

Si has creado un fichero nuevo al módulo y quieres que esté en el repositorio tienes que añadirlo explícitamente. Recuerda que un repositorio está pensado para “fuentes” (no binarios). No subas nada que se pueda generar a partir de otros ficheros. Nada de binarios, ficheros objeto, copias de seguridad, pdf o cualquier cosa que se pueda obtener como resultado de una compilación.

anotherjob$ svn add nuevo_fichero
anotherjob$ svn commit

Subir cambios locales al repositorio

Si eres tú el que desea subir al repositorio una nueva versión de los ficheros de ese módulo (que has modificado tú mismo), ejecuta esto:

anotherjob$ svn commit

Es este caso se abrirá el editor de texto por defecto para que añadas un comentario referente a las modificaciones que estás subiendo.

Mover un módulo

Esta es una importante mejora con respecto a CVS. En subversion se pueden renombrar y mover ficheros y módulos completos. La idea es poder cambiar la ubicación del módulo en el mismo repositorio.

Supón que quieres mover el contenido del módulo xmi2code en http://example.com/repos/ a xmi2code/trunk. Las operaciones a realizar serán las siguientes

  • Renombrar (mover) xmi2code a trunk

$ svn move -m “xmi2code a trunk” http://example.com/repos/xmi2code http://example.com/repos/trunk

  • Crear el subdirectorio xmi2code:

$ svn mkdir -m “crear xmi2code” http://example.com/repos/xmi2code

  • Mover trunk a xmi2code:

$ svn move -m “trunk a xmi2code” http://example.com/repos/trunk http://example.com/repos/xmi2code

Crear una rama

Subversion permite crear flujos de desarrollo paralelos ramificando el módulo en uno o varios puntos. Para este ejemplo, supondremos que la rama principal se encuentra en el subdirectorio trunk del módulo xmi2code. La nueva rama tendrá por nombre vhdl. Tendrás que ejecutar las siguientes operaciones:

  • Creación del subdirectorio branches (en el caso de que no exista), en el que se colocará la nueva rama.

$ svn mkdir http://example.com/repos/xmi2code/xmi2code/branches

  • Creación de la rama:

$ svn copy http://example.com/repos/xmi2code/xmi2code/trunk http://example.com/repos/xmi2code/xmi2code/branches/vhdl

Referencias

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Lk2

Me permito añadir algo ...

Para la gente que prefeire tener un entorno gráfico para todo esto, recomiendo RapidSVN. Yo lo uso, muchas veces combinado con la línea de comandos, según me venga, y la verdad, es muy pero que muy sencillo ...

Aunque claro, la línea de comandos de svn tampoco entraña demasiada dificultad Smiling

*************************************************************
A quien ubérrima conífera se adosa, óptima umbría le entolda

Imagen de magmax

Subversion en windows

Para los que no tienen más remedio que usar windows (¡pobres!), les recomiendo TortoiseSVN, que también es de Tigris, como el RapidSVN que apuntaba Lk2.

(Por favor, añadid enlaces cuando recomendéis cosillas. Es más útil para todos ;D)

Miguel Ángel García
http://magmax.org

Imagen de Lk2

Llevas razón

En fin, ya lo has linkado tu, así que me abstengo Eye-wink

*************************************************************
A quien ubérrima conífera se adosa, óptima umbría le entolda

Imagen de david.villa

En windows también tienes

En windows también tienes subversion en “consola”, si se puede llamar así a la “pantalla negra”.

No soy portavoz de ningún colectivo, grupo o facción. Mi opinión es personal e intransferible.

Imagen de Lk2

"Símbolo de sístema"

Lo llaman "símbolo del sistema". Llamarlo igual que a XTerm o que Konsole me parece un atrevimiento Sticking out tongue

*************************************************************
A quien ubérrima conífera se adosa, óptima umbría le entolda

Imagen de david.villa

La gente de "a pie" lo llama

La gente de "a pie" lo llama "pantalla negra", lo he oido muchas veces y me hace gracia la expresión. Ya sabes, la pantalla negra, la azul, la roja... Windows es un mundo multicolor...

En realidad el atrevimiento es compararlo con bash, el Konsole o el gnome-terminal es lo de menos

No soy portavoz de ningún colectivo, grupo o facción. Mi opinión es personal e intransferible.