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
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.
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.
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
ToDo
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
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.
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
xmi2code a trunk$ svn move -m “xmi2code a trunk” http://example.com/repos/xmi2code http://example.com/repos/trunk
xmi2code:$ svn mkdir -m “crear xmi2code” http://example.com/repos/xmi2code
trunk a xmi2code:$ svn move -m “trunk a xmi2code” http://example.com/repos/trunk http://example.com/repos/xmi2code
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:
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
$ svn copy http://example.com/repos/xmi2code/xmi2code/trunk http://example.com/repos/xmi2code/xmi2code/branches/vhdl
Comentarios
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
*************************************************************
A quien ubérrima conífera se adosa, óptima umbría le entolda
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
Llevas razón
En fin, ya lo has linkado tu, así que me abstengo
*************************************************************
A quien ubérrima conífera se adosa, óptima umbría le entolda
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.
"Símbolo de sístema"
Lo llaman "símbolo del sistema". Llamarlo igual que a XTerm o que Konsole me parece un atrevimiento
*************************************************************
A quien ubérrima conífera se adosa, óptima umbría le entolda
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.