Manuals

Rotinas de eventos no servidor

A hook script is a program triggered by some repository event, such as the creation of a new revision or the modification of an unversioned property. Each hook is handed enough information to tell what that event is, what target(s) it's operating on, and the username of the person who triggered the event. Depending on the hook's output or return status, the hook program may continue the action, stop it, or suspend it in some way. Please refer to the chapter on Hook Scripts in the Subversion Book for full details about the hooks which are implemented.

Estas rotinas para eventos são executadas pelo servidor que hospeda o repositório. TortoiseSVN também permite que você configura no cliente rotinas para eventos que são executando localmente em consequência de certos acontecimentos. Veja “Client Side Hook Scripts” para mais informações.

Sample hook scripts can be found in the hooks directory of the repository. These sample scripts are suitable for Unix/Linux servers but need to be modified if your server is Windows based. The hook can be a batch file or an executable. The sample below shows a batch file which might be used to implement a pre-revprop-change hook.

rem Only allow log messages to be changed.
if "%4" == "svn:log" exit 0
echo Property '%4' cannot be changed >&2
exit 1
    

Note that anything sent to stdout is discarded. If you want a message to appear in the Commit Reject dialog you must send it to stderr. In a batch file this is achieved using >&2.

Sobreescrevendo ganchos

Se uma rotina para evento rejeitar sua submissão, então sua decisão é final. Mas você pode construir um mecanismo de desvio na própria rotina usando a técnica de Palavra Mágica. Se a rotina quiser rejeitar a operação ela primeiro vasculha a mensagem de log por uma senha específica, frase fixa ou talvez o nome do arquivos com um prefixo. Se ela encontrar a palavra mágica, então ela permite que a submissão continue. Se a frase não for encontrada, então ela bloqueia a submissão com uma mensagem como Você não disse a palavra mágica. :-)

TortoiseSVN homepage