Tabla de contenidos
Dado que todos los comandos de TortoiseSVN se controlan a través de parámetros de línea de comandos, puede automatizarlo con scripts batch o iniciando comandos y diálogos específicos desde otros programas (por ejemplo, desde su editor de textos favorito).
Recuerde que TortoiseSVN es un cliente GUI, y esta guía de automatización le muestra cómo conseguir que aparezcan los diálogos de TortoiseSVN para recolectar información del usuario. Si desea escribir un script que no requiera entradas del usuario, debería utilizar el cliente de línea de comandos oficial de Subversion.
El programa de interfaz gráfico de TortoiseSVN se llama TortoiseProc.exe. Todos los comandos se especifican con el parámetro /command:abcd donde abcd es el nombre obligatorio del comando. La mayoría de estos comando necesitan al menos un argumento de ruta, que se proporciona con /path:"alguna\ruta". En la siguiente tabla el comando se refiere al parámetro /command:abcd y la ruta se refiere al parámetro /path:"alguna\ruta".
Como algunos comandos pueden tomar una lista de rutas de destino (por ejemplo, si se confirman varios ficheros específicos) el parámetro /path puede admitir varias rutas, separadas con un caracter *.
TortoiseSVN utiliza ficheros temporales para pasar múltiples argumentos entre la extensión del shell y el programa principal. Desde TortoiseSVN 1.5.0 en adelante, el parámetro /notempfile es obsoleto y ya no hay necesidad de añadirlo.
You can also specify a file which contains a list of paths, separated by newlines. The file must be in UTF-16 format. If you pass such a file, use /pathfile instead of /path. To have TortoiseProc delete that file after the command is finished, you can pass the parameter /deletepathfile.
El diálogo de progreso que se utiliza para las confirmaciones, actualizaciones y muchos más comandos normalmente se queda abierto después de que el comando termina, hasta que el usuario pulsa el botón . Esto puede cambiarse marcando la opción correspondiente en el diálogo de configuración. Pero utilizando esa opción se cerrará el diálogo de progreso, sin importar si se inició el comando desde el fichero batch o desde el menú contextual de TortoiseSVN.
Para especificar una localización diferente del fichero de configuración, utilice el parámetro /configdir:"ruta\al\directorio\de\configuración". Esto tomará preferencia sobre la ruta por defecto, incluyendo cualquier configuración en el registro.
To close the progress dialog at the end of a command automatically without using the permanent setting you can pass the /closeonend parameter.
/closeonend:0 no cierra el diálogo automáticamente
/closeonend:1 auto cerrar si no hay errores
/closeonend:2 cierra automáticamente si no hay errores ni conflictos
/closeonend:3 cierra automáticamente si no hay errores, conflictos ni fusiones
To close the progress dialog for local operations if there were no errors or conflicts, pass the /closeforlocal parameter.
La siguiente tabla lista todos los comandos a los que se puede acceder utilizando la línea de comando de TortoiseProc.exe. Como se describe más arriba, se deben utilizar en la forma /command:abcd. En la tabla, el prefijo /command se omite para ahorrar espacio.
Tabla D.1. Lista de comandos y opciones disponibles
| Comando | Descripción |
|---|---|
| :about | Muestra el diálogo Acerca de. También se muestra si no se pasa ningún comando. |
| :log | Opens the log dialog. The /path specifies the file or folder for which the log should be shown. Six additional options can be set: /startrev:xxx, /endrev:xxx, /strict enables the 'stop-on-copy' checkbox, /findstring:"filterstring" fills in the filter text, /findtext forces the filter to use text, not regex, or /findregex forces the filter to use regex, not simple text search, and /findtype:X with X being a number between 1 and 7. The numbers correspond to:
|
| :checkout | Abre el diálogo de obtener. /path especifica el directorio de destino y /url especifica la URL desde la que obtener. |
| :import | Abre el diálogo de importar. /path especifica el directorio con los datos a importar. |
| :update | Updates the working copy in /path to HEAD. If the option /rev is given then a dialog is shown to ask the user to which revision the update should go. To avoid the dialog specify a revision number /rev:1234. Other options are /nonrecursive, /ignoreexternals and /includeexternals. |
| :commit | Abre el diálogo de confirmación. /path especifica el directorio de destino o la lista de ficheros a confirmar. También puede especificar la opción /logmsg para pasar un mensaje de registro predefinido al diálogo de confirmación. O, si no desea pasar el mensaje de registro en la línea de comandos, utilice /logmsgfile:ruta, donde ruta apunta a un fichero que contiene el mensaje de registro. Para rellenar la caja de texto del ID del error (en caso de que haya preparado adecuadamente la integración con el sistema de control de errores), puede utilizar /bugid:"el ID del error aquí". |
| :add | Añade los ficheros en /path al control de versiones. |
| :revert | Revierte las modificaciones locales de una copia de trabajo. La /path dice qué items deben revertirse. |
| :cleanup | Cleans up interrupted or aborted operations and unlocks the working copy in /path. Use /noui to prevent the result dialog from popping up (either telling about the cleanup being finished or showing an error message). |
| :resolve | Marca un fichero en conflicto especificado en /path como resuelto. Si se especifica /noquestion, la resolución se realiza sin preguntar al usuario primero si realmente debe hacerse. |
| :repocreate | Crea un repositorio en /path |
| :switch | Abre el diálogo cambiar. /path especifica el directorio de destino. |
| :export | Exporta la copia de trabajo en /path a otro directorio. Si /path apunta a un directorio sin versionar, aparecerá un diálogo pidiendo una URL para exportar al directorio en /path. |
| :merge | Abre el diálogo de fusión. /path especifica el directorio de destino. Para fusionar un rango de revisiones, están disponibles las siguientes opciones: /fromurl:URL, /revrange:cadena. Para fusionar dos árboles de repositorio, están disponibles las siguientes opciones: /fromurl:URL, /tourl:URL, /fromrev:xxx y /torev:xxx. Estas opciones pre-rellenan los campos relevantes en el diálogo de fusión. |
| :mergeall | Abre el diálogo fusionar todo. /path especifica el directorio de destino. |
| :copy | Abre el diálogo de rama / etiqueta. /path especifica la copia de trabajo desde la que crear la rama o etiqueta. Y /url es la URL de destino. También puede especificar la opción /logmsg para pasar un mensaje de registro predefinido al diálogo de rama / etiqueta. O, si no desea pasar el mensaje de registro en la línea de comandos, utilice /logmsgfile:ruta, donde ruta apunta a un fichero que contiene el mensaje de registro. |
| :settings | Abre el diálogo de configuración. |
| :remove | Elimina el/los fichero/s en /path del control de versiones. |
| :rename | Renombra el fichero en /path. El nuevo nombre del fichero se pregunta con un diálogo. Para evitar la pregunta sobre renombrar ficheros similares en un paso, utilice /noquestion. |
| :diff | Starts the external diff program specified in the TortoiseSVN settings. The /path specifies the first file. If the option /path2 is set, then the diff program is started with those two files. If /path2 is omitted, then the diff is done between the file in /path and its BASE. To explicitly set the revision numbers use /startrev:xxx and /endrev:xxx. If /blame is set and /path2 is not set, then the diff is done by first blaming the files with the given revisions. The parameter /line:xxx specifies the line to jump to when the diff is shown. |
| :showcompare |
Dependiendo de las URLs y las revisiones a comparar, esto o bien muestra un diff unificado (si la opción Las opciones |
| :conflicteditor | Inicia el editor de conflictos especificado en la configuración de TortoiseSVN con los ficheros correctos para el fichero en conflicto de /path. |
| :relocate | Abre el diálogo relocalizar. /path especifica la ruta de la copia de trabajo a relocalizar. |
| :help | Abre el fichero de ayuda. |
| :repostatus | Opens the check-for-modifications dialog. The /path specifies the working copy directory. If /remote is specified, the dialog contacts the repository immediately on startup, as if the user clicked on the Check repository button. |
| :repobrowser | Inicia el diálogo del navegador de repositorios, apuntando a la URL de la copia de trabajo dada en /path o /path apunta directamente a una URL. Puede utilizarse una opción adicional /rev:xxx para especificar la revisión que el navegador de repositorios debe mostrar. Si se omite /rev:xxx, se supone HEAD. Si /path apunta a una URL, el /projectpropertiespath:ruta/a/copia/trabajo especifica la ruta desde donde hay que leer y utilizar las propiedades del proyecto. |
| :ignore | Añade todos los objetivos en /path a la lista de ignorados, es decir, añade la propiedad svn:ignore a esos ficheros. |
| :blame |
Abre el diálogo de autoría para el fichero especificado en Si las opciones Si la opción Las opciones |
| :cat | Graba un fichero de una URL o una copia de trabajo dada en /path al lugar dado en /savepath:ruta. La revisión se da en /revision:xxx. Esto puede utilizarse para obtener un fichero cno una revisión concreta. |
| :createpatch | Crea un fichero de parte para la ruta dada en /path. |
| :revisiongraph | Muestra el gráfico de revisiones para la ruta dada en /path. |
| :lock | Bloquea un fichero o todos los ficheros en un directorio dado en /path. Se muestra el diálogo Bloquear para que el usuario pueda introducir un comentario para el bloqueo. |
| :unlock | Desbloquea un fichero o todos los ficheros en un directorio dado en /path. |
| :rebuildiconcache | Reconstruye la caché de iconos de Windows. Utilice esto sólo en el caso de que los iconos de Windows se hayan corrompido. Un efecto secundario de esto (y no puede evitarse) es que los iconos del escritorio se recolocan. Para eliminar el mensaje de advertencia, pase /noquestion. |
| :properties | Muestra el diálogo de propiedades para la ruta dada en /path. |
Ejemplos (que deben introducirse en una única línea):
TortoiseProc.exe /command:commit
/path:"c:\svn_wc\file1.txt*c:\svn_wc\file2.txt"
/logmsg:"mensaje de registro de prueba" /closeonend
TortoiseProc.exe /command:update /path:"c:\svn_wc\" /closeonend
TortoiseProc.exe /command:log /path:"c:\svn_wc\file1.txt"
/startrev:50 /endrev:60 /closeonend