Manuals

Scripts de gancho de 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.

Esses scripts de gancho são executados pelo servidor que hospeda o repositório. O TortoiseSVN também permite-te configurar scripts de gancho de cliente, que são executados localmente devido a certos eventos. Consultar “Scripts de Gancho do Lado do Cliente” 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.

Ganchos de Substituição

Se um script de gancho rejeitar a tua submissão então essa decisão é final. Mas tu podes criar no próprio script um mecanismo de substituição, usando a técnica Magic Word. Se o script pretender rejeitar a operação então primeiro, pesquisa na mensagem de registo à procura de uma palavra passe especial, seja ela uma frase fixa ou talvez um nome de ficheiro com um prefixo. Se encontrar a tal palavra mágica, então premite o progresso da submissão. Se a frase não é encontrada, então poderá bloquear a submissão com uma mensagem do tipo Tu não disseste a palavra mágica. :-)

TortoiseSVN homepage