viernes, 27 de enero de 2012

Limpiar archivos .svn de carpetas de repositorios (win)


Si trabajas con repositorios (como p.ej. TortoiseSVN) puede que te hayas encontrado con este caso alguna vez...

Estamos trabajando en nuestra aplicación y en un momento dado necesitamos extraer parte del código fuente y guardarlo sin esas dichosas carpetas .svn repartidas por todos los subdirectorios.  ¿Cómo puedo hacer esto?  En pequeños proyectos no supondrá un problema hacerlo a mano pero si se trata de una "criatura" de gran embergadura la cosa se complica, y puede resultar tedioso recorrer todo el árbol de directorios para dejarlo como una patena.

¿Solución? (encontrado en SNIPPLR): Editando el registro de windows (inicio > ejecutar > regedit) podemos añadir un sencillo comando recursivo de limpieza en cuatro pasos:

1. Crear una nueva Clave en el registro y llamarla DeleteSVN:
\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN  

2. En REG_SZ de nuestra clave escribir:
Eliminar carpetas SVN

3. Crear otra nueva clave dentro de DeleteSVN llamada command, así:
\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command

4. En REG_SZ de la nueva clave poner:
cmd.exe /C  "TITLE Removing SVN Folders in %1 && FOR /r "%1" %%f IN (.svn) DO RD /s /q "%%f" "


A partir de ahora cada vez que se muestre nuestro menú del botón derecho del ratón al pulsarlo sobre una carpeta, aparecerá la nueva opción "Eliminar carpetas SVN" la cual lanzará un shell fugaz que hará el trabajo por nosotros.

No hay comentarios:

Publicar un comentario