Mientras que no son usados con tanta frecuencia como los comandos discutidos previamente en este capítulo, usted necesitará de vez en cuando estos comandos.
Cuando Subversion modifica su copia de trabajo (o cualquier
información en el interior de .svn
),
intenta hacerlo tan seguro como sea posible. Antes de cambiar
cualquier cosa, escribe sus intenciones en un fichero de
registro, ejecuta los comandos en el fichero de registro,
entonces borra el fichero de registro (esto es similar en
diseño a un sistema de ficheros transaccional). Si una operación
de Subversion es interrumpida (si el proceso es matado, o si
la máquina se cuelga, por ejemplo), los
ficheros de registro permanecen en disco. Ejecutando de nuevo
los ficheros de registro, Subversion puede completar la
operación anteriormente empezada, y su copia de trabajo puede
volver a estar en un estado consistente.
Y esto es exactamente lo que hace svn
cleanup: busca en su copia de trabajo y ejecuta
cualquier registro de sobra,
eliminando bloqueos en el proceso. Si Subversion alguna vez le
dice que alguna parte de su copia de trabajo está
“bloqueada”, entonces éste es el comando que
debería ejecutar. También, svn status
mostrará una L
al lado de los objetos
bloqueados:
$ svn status L somedir M somedir/foo.c $ svn cleanup $ svn status M somedir/foo.c
El comando svn import es una manera rápida de copiar un árbol de ficheros sin versionar en el repositorio, creando directorios intermedios como sea necesario.
$ svnadmin create /usr/local/svn/newrepos $ svn import mytree file:///usr/local/svn/newrepos/some/project Adding mytree/foo.c Adding mytree/bar.c Adding mytree/subdir Adding mytree/subdir/quux.h Committed revision 1.
El ejemplo anterior copia el contenido del directorio
mytree
debajo del directorio
some/project
en el repositorio:
$ svn ls file:///usr/local/svn/newrepos/some/project bar.c foo.c subdir/
Observe que después de que la importación esté acabada, el árbol original no se convierte en una copia de trabajo. Para empezar a trabajar, usted todavía necesita hacer svn checkout en una copia de trabajo fresca del árbol.