Mostrando entradas con la etiqueta proyectos. Mostrar todas las entradas
Mostrando entradas con la etiqueta proyectos. Mostrar todas las entradas

viernes, 8 de agosto de 2014

Automatizar TortoiseSVN con fichero por lotes

Si necesitamos automatizar ciertas tareas en cada commit/update de nuestro proyecto gestionado con TortoiseSVN en windows podemos realizar estos sencillos ficheros por lotes .bat para simplificar la tarea.
Dejo aquí dos ejemplos básicos que he visto en este blog en inglés.

Ejemplo para Commit:
@echo off
echo.
echo. [ SVN Committer ]
:: The two lines below should be changed to suit your system.
set SOURCE=C:\Users\Administrador\Desktop\repoCodesk
set SVN=C:\Program Files\TortoiseSVN\bin
echo.
echo. Committing %SOURCE% to SVN...
"%SVN%\TortoiseProc.exe" /command:commit /path:"%SOURCE%" /closeonend:0
echo. done.
echo.
echo. Operation complete.
Ejemplo para Update:
@echo off
echo.
echo. [ SVN Updater ]
set SOURCE=C:\Users\Administrador\Desktop\repoCodesk
set SVN=C:\Program Files\TortoiseSVN\bin
:: The SOURCEj below should be already set to fit your system.
echo. Updating %SOURCE%\ from SVN...
"%SVN%\TortoiseProc.exe" /command:update /path:"%SOURCE%\" /closeonend:2
echo.        done.

Nota:  Utilizamos el parámetro closeonend según nuestras necesidad. En el caso del Commit mostramos el diálogo de selección de ficheros, para el update en este caso lo omitimos.

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.