Subversion - Definir gancho de submissão padrão?

1

Existe alguma maneira de definir um gancho de confirmação customizado como um gancho "padrão" quando os repositórios são criados?

    
por Joshua Enfield 16.06.2010 / 16:23

1 resposta

1

Fora dos nove ganchos padrão instalados em um novo repositório pelo comando 'svnadmin create / caminho / para / repo' (start-commit, pré / pós-commit, pré / pós-revprop-change, pré / pós- bloqueio, e pré / pós-desbloqueio), eu não sei de nenhuma maneira de ter ganchos adicionais incluídos automaticamente como um gancho "padrão" para todos os repositórios recém-criados.

Suponho que você poderia criar um shell script wrapper para criar novos repositórios que chamam o comando svnadmin create com um conjunto de variáveis para o caminho do repositório seguido por uma cópia do gancho de confirmação customizado na pasta path / to / repo / hooks e use isso para todos os novos repositórios.

Por fim, como você mencionou que esse gancho personalizado em particular é um gancho de confirmação, devo repetir o aviso dado por Controle de Versão com Subversion ao discutir scripts de hook (grifo meu):

While hook scripts can do almost anything, there is one dimension in which hook script authors should show restraint: do not modify a commit transaction using hook scripts. While it might be tempting to use hook scripts to automatically correct errors, shortcomings, or policy violations present in the files being committed, doing so can cause problems. Subversion keeps client-side caches of certain bits of repository data, and if you change a commit transaction in this way, those caches become indetectably stale. This inconsistency can lead to surprising and unexpected behavior. Instead of modifying the transaction, you should simply validate the transaction in the pre-commit hook and reject the commit if it does not meet the desired requirements. As a bonus, your users will learn the value of careful, compliance-minded work habits

    
por 11.07.2010 / 20:03

Tags