Varios
checkout: Saca el fichero del repositorio y lo almacena localmente para poder trabajar con él.
checkin: Una vez realizados los cambios, volcamos el fichero al repositorio donde estará disponible para el resto de desarrolladores.
status: Indica el estado actual del fichero.
log: Saca un listado con las revisiones del fichero
Iniciando Subversion
svnadmin create /var/svn
Iniciando proyectos
Nos colocamos en directorio donde tenemos el proyecto y lo importamos svn mkdir file:///var/svn/gcm svn import gcm file:///var/svn/gcm
Actualizar con remoto
svn up
Volver a una versión anterior
svn up -r2
Volver atrás con un archivo concreto
svn update -r
Añadir de un golpe todos los ficheros con interrogante
#!/bin/bash DIFS="$IFS" ; IFS=$'\n' for x in $(svn status | grep ^? | awk -v FS='? ' '{print $2}') ; do svn add "$x" done IFS="$DIFS"
lo mismo con los borrados:
#!/bin/bash DIFS="$IFS" ; IFS=$'\n' for x in $(svn status | grep ^! | awk -v FS='! ' '{print $2}') ; do svn del "$x" done IFS="$DIFS"
Descartar archivos a tener en cuenta
Con svn propedit svn:ignore
, nos pedira una lista de rutas en formato de expresión regular para detectar los archivos o directorios que queremos descartar de ser tratados por subversión
Ejemplo para descartar archivos de log que actualmente estan en repositorio.
svn remove log/* svn commit -m 'borrar todos los ficheros de log de subversion' svn propset svn:ignore "*.log" log/ svn update log/ svn commit -m 'ignorar todos los ficheros en log/ que terminen en .log
Dividir proyectos
Teniendo Scripts, proyectos y gcm dentro de un mismo repositorio vamos a dividirlos
Primero creamos los proyectos:
svnadmin create /var/svn/Scripts svnadmin create /var/svn/proyectos svnadmin create /var/svn/gcm
Generamos copia del actual | filtramos | añadimos:
svnadmin dump /var/svn/ | svndumpfilter exclude proyectos Scripts | svnadmin load /var/svn/gcm svnadmin dump /var/svn/ | svndumpfilter exclude proyectos gcm | svnadmin load /var/svn/Scripts svnadmin dump /var/svn/ | svndumpfilter exclude Scripts gcm | svnadmin load /var/svn/proyectos
Enlaces relacionados
Un buen resumen