Visto que todos os comandos do TortoiseSVN são controlados através de parâmetros de linha de comandos, tu podes automatizá-los com scripts de batch ou arrancar comandos específicos e caixas de diálogo a partir de outros comandos (e.g. o teu editor de texto preferido).
Lembra-te que o TortoiseSVN é um cliente de GUI e este guia de automação mostra-te como fazer as caixas de diálogo do TortoiseSVN aparecer, para colectar a entrada do utilizador. Se tu queres escrever um script que não requer entrada de dados, deverás usar em alternativa, o cliente de linha de comandos oficial do Subversion.
O programa de GUI do TortoiseSVN chama-se TortoiseProc.exe
. Todos os comandos são especificados com o parâmetro /command:abcd
onde abcd
é o nome do comando requerido. A maioria desses comandos necessitam pelo menos de um argumento de caminho, que é dado com /path:"some\path"
. Na tabela seguinte o comando refere-se ao parâmetro /command:abcd
e o caminho refere-se ao parâmetro /path:"some\path"
.
There's a special command that does not require the parameter /command:abcd
but, if nothing is specified on the command line, starts the project monitor instead. If /tray
is specified, the project monitor starts hidden and only adds its icon to the system tray.
Visto que alguns dos comandos podem necessitar de uma lista de caminhos de destinos (e.g. submeter vários ficheiros específicos), o parâmetro /path
pode requerer vários caminhos, separados pelo caracter *
.
You can also specify a file which contains a list of paths, separated by newlines. The file must be in UTF-16 format, without a BOM. 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
. If you don't pass /deletepathfile
, you have to delete the file yourself or the file gets left behind.
A caixa de diálogo que é usada para submissões, actualizações e muitos mais comandos fica usualmente aberta depois do comando ter acabado até o utilizador premir o botão
. Isto pode ser alterado ao verificar a opção correspondente na caixa de diálogo preferências. Mas ao usar essa preferência, ir-se-á fechar a caixa de diálogo de progresso independentemente de iniciares o comando a partir de um ficheiro de batch ou a partir do menu de contexto do TortoiseSVN.Para especificar uma localização diferente para o ficheiro de configuração, usa o parâmetro /configdir:"path\to\config\directory"
. Isto irá substituir o caminho por defeito, incluindo qualquer configuração do registo.
Para fechar a caixa de diálogo de progresso automaticamente no fim de um comando, sem usar a preferência permanente, tu podes passar o parâmetro /closeonend
.
/closeonend:0
não fechar automaticamente a caixa de diálogo
/closeonend:1
fechar automaticamente se não existem erros
/closeonend:2
fechar automaticamente se não existem erros e conflitos
/closeonend:3
fechar automaticamente se não existem erros, conflitos e integrações
Para fechar a caixa de diálogo de progresso para operações locais, se não existem erros ou conflitos, passa o parâmetro /closeforlocal
.
A tabela abaixo lista todos os comandos que podem ser acedidos usando a linha de comandos TortoiseProc.exe. Como descrito acima, esses deverão ser usados na forma /command:abcd
. Na tabela é omitido o prefixo /command
por questões de espaço.
Tabela D.1. Lista de comandos e opções disponíveis
Comando | Descrição |
---|---|
:about | Mosta a caixa de diálogo Sobre. Esta é também mostrada se não é dado nenhum comando. |
:log |
Opens the log dialog. The
An svn date revision can be in one of the following formats:
|
:checkout |
Opens the checkout dialog. The If you specify |
:import | Abre a caixa de diálogo importar. O /path específica a pasta com os dados a importar. Podes também especificar a opção /logmsg para passar uma mensagem de registo pré-definida para a caixa de diálogo importar. Ou, senão desejas passar a mensagem de registopela linha de comandos, usa /logmsgfile:path , onde caminho aponta para um ficheiro que contém a mensagem de registo. |
: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 . The /stickydepth indicates that the specified depth should be sticky, creating a sparse checkout. The /skipprechecks can be set to skip all checks that are done before an update. If this is specified, then the Mostrar registo button is disabled, and the context menu to show diffs is also disabled after the update. |
:commit | Abre a caixa de diálogo submeter. O /path específica a pasta de destino ou a lista de ficheiros a submeter. Tu podes também especificar a opção /logmsg para passar uma mensagem de registo pré-definida para a caixa de diálogo submeter. Ou se não queres passar a mensagem de registo na linha de comandos, usa /logmsgfile:path , onde o caminho aponta para um ficheiro que contém a mensagem de registo. Para pré-preencher a caixa do ID-Problema ( no caso de teres configurado correctamente a integração com os seguidores de bugs), podes usar para isso o /bugid:"o id do bug aqui" . |
:add | Adiciona ao controlo de versões os ficheiros em /path |
:revert | Reverte as modificações locais de uma cópia de trabalho. O /path diz quais os itens a reverter. |
:cleanup | Cleans up interrupted or aborted operations and unlocks the working copy in /path . You also have to pass the /cleanup to actually do the cleanup. Use /noui to prevent the result dialog from popping up (either telling about the cleanup being finished or showing an error message). /noprogressui also disables the progress dialog. /nodlg disables showing the cleanup dialog where the user can choose what exactly should be done in the cleanup. The available actions can be specified with the options /cleanup for status cleanup, /breaklocks to break all locks, /revert to revert uncommitted changes, /delunversioned , /delignored , /refreshshell , /externals , /fixtimestamps and /vacuum . |
:resolve | Marca um ficheiro em conflito em /path como resolvido. Se for dado o /noquestion então a resolução é feita sem perguntar primeiro ao utilizador se ela deverá ser mesmo feita. |
:repocreate | Cria um repositório em /path |
:switch | Abre a caixa de diálogo trocar. O /path especifica a pasta de destino e o /url o URL de destino da troca. |
:export | Exporta a cópia de trabalho em /path para outra pasta. Se o /path apontar para uma pasta não versionada, a caixa de diálogo perguntará por um URL para exportar para a pasta em /path . Se especificares a chave /blockpathadjustments , são bloqueados os ajustamentos automáticos de caminhos de exportação. |
:dropexport | Exporta a cópia de trabalho em /path para a pasta especificada em /droptarget . Esta exportação não usa a caixa de diálogo exportar, mas executa-a directamente. A opção /overwrite indica que os ficheiros existentes são sobrepostos sem informação ao utilizador, e a opção /autorename indica que se os ficheiros já existirem, os ficheiros exportados serão automaticamente renomeados para evitar sobreposições. A opção /extended pode indicar localchanges para só exportar ficheiros que foram alterados localmente, ou não-versionado exportar também todos os itens não versionados. |
:dropvendor | Copies the folder in /path recursively to the directory specified in /droptarget . New files are added automatically, and missing files get removed in the target working copy, basically ensuring that source and destination are exactly the same. Specify /noui to skip the confirmation dialog, and /noprogressui to also disable showing the progress dialog. |
:merge | Opens the merge dialog. The /path specifies the target directory. For merging a revision range, the following options are available: /fromurl:URL , /revrange:string . For merging two repository trees, the following options are available: /fromurl:URL , /tourl:URL , /fromrev:xxx and /torev:xxx . |
:mergeall | Abre a caixa de diálogo integrar todos. O /path específica a pasta de destino. |
:copy | Brings up the branch/tag dialog. The /path is the working copy to branch/tag from. And the /url is the target URL. If the urls starts with a ^ it is assumed to be relative to the repository root. To already check the option Troca a cópia de trabalho para o novo ramo/etiqueta you can pass the /switchaftercopy switch. To check the option Criar pastas intermédias pass the /makeparents switch. You can also specify the /logmsg switch to pass a predefined log message to the branch/tag dialog. Or, if you don't want to pass the log message on the command line, use /logmsgfile:path , where caminho points to a file containing the log message. |
:settings | Abre a caixa de diálogo preferências. |
:remove | Remove do controlo de versões o(s) ficheiro(s) em /path . |
:rename | Altera o nome do ficheiro em /path . O novo nome do ficheiro será pedido numa caixa de diálogo. Para evitar a pergunta sobre alterar o nome a ficheiros similares num só passo, passa /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. If the specified file also has property modifications, the external diff tool is also started for each modified property. To prevent that, pass the option /ignoreprops . To explicitly set the revision numbers use /startrev:xxx and /endrev:xxx , and for the optional peg revision use / Pegrevision: 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. |
:shelve | Shelves the specified paths in a new shelf. The option /shelfname:name specifies the name of the shelf. An optional log message can be specified with /logmsg:message . If option /checkpoint is passed, the modifications of the files are kept. |
:unshelve | Applies the shelf with the name /shelfname:name to the working copy path. By default the last version of the shelf is applied, but you can specify a version with /version:X . |
:showcompare |
Dependendo dos URLs e revisões a comparar, isto ou mostra uma comparação unificada (se a opção As opções If the specified url also has property modifications, the external diff tool is also started for each modified property. To prevent that, pass the option If a unified diff is requested, an optional |
:conflicteditor | Arranca o editor de conflitos especificado nas preferências do TortoiseSVN com os ficheiros correctos para o ficheiro em conflito no /path . |
:relocate | Abre a caixa de diálogo reposicionar. O /path especifica o caminho da cópia de trabalho a reposicionar. |
:help | Abre o ficheiro de ajuda. |
:repostatus | Abre a caixa de diálogo verificar-alterações. O /path especifica a pasta da cópia de trabalho. Se for especificada a /remote , a caixa de diálogo contacta imediatamente o repositório no arranque, como se o utilizador clicasse no botão Verificaro repositório. |
:repobrowser |
Arranca a caixa de diálogo do navegador de repositório, apontando para o URL da cópia de trabalho dada pelo Uma opção adicional Se Se for especificada a |
:ignore | Adiciona todos os objectos em /path à lista de ignorados, i.e. adiciona a propriedade svn:ignore a esses ficheiros. |
:blame |
Abre a caixa de diálogo responsabilizar paa o ficheiro especificado em Se as opções Se a opção As opções |
:cat | Guarda um ficheiro de um URL ou cópia de trabalho dada em /path para a localização especificada em /savepath:path . A revisão é dada em /revision:xxx . Isto pode ser usado para obter um ficheiro com uma revisão específica. |
:createpatch | Creates a patch file for the path given in /path . To skip the file Save-As dialog you can pass /savepath:path to specify the path where to save the patch file to directly. To prevent the unified diff viewer from being started showing the patch file, pass /noview . If a unified diff is requested, an optional prettyprint option can be specified which will show the merge-info properties in a more user readable format. |
:revisiongraph |
Mostra o gráfico de revisões para o caminho dado em Para criar um ficheiro de imagem do gráfico de revisão para um caminho específico, mas sem mostrar a janela do gráfico, Visto o gráfico de revisões ter muitas opções que afectam o modo como é visualizado, podes também activar opções para usares ao criar o ficheiro de imagem de saída. Passa essas opções com |
:lock | Bloqueia um ficheiro ou todos os ficheiros numa pasta dada por /path . É mostrada a caixa de diálogo 'Bloquear' para que o utilizador possa introduzir um comentário para o bloqueio. |
:unlock | Desbloqueia um ficheiro ou todos os ficheiros numa pasta dada por /path . |
:rebuildiconcache | Reconstrói a cache de ícones do windows. Usa só isto no caso de os ícones do Windows ficarem corrompidos. Um efeito secundário disto (que não pode ser evitado) é que os ícones no ambiente de trabalho são reordenados. Para suprimir a caixa de mensagem, passa o /noquestion . |
:properties |
Mosta a caixa de diálogo propriedades para o caminho especificado por Para este comando lidar com propreidades versionadas é necessário uma cópia de trabalho. As propriedades da revisão podem ser vistas/alteradas se Para abrir directamente a caixa de diálogo de propriedades para uma propriedade específica, passa o seu nome como |
:sync |
Exports/imports settings, either depending on whether the current settings or the exported settings are newer, or as specified. If a path is passed with The parameter If neither If If The parameter |
Exemplos (que deveram ser introduzidos numa só linha):
TortoiseProc.exe /command:commit /path:"c:\svn_wc\file1.txt*c:\svn_wc\file2.txt" /logmsg:"test log message" /closeonend:0 TortoiseProc.exe /command:update /path:"c:\svn_wc\" /closeonend:0 TortoiseProc.exe /command:log /path:"c:\svn_wc\file1.txt" /startrev:50 /endrev:60 /closeonend:0