Subversion - Definir gancho de commit padrão?

Subversion - Definir gancho de commit padrão?

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

Responder1

Fora dos nove ganchos padrão instalados em um novo repositório pelo comando 'svnadmin create /path/to/repo' (start-commit, pre/post-commit, pre/post-revprop-change, pre/post-lock e pré/pós-desbloqueio), não conheço nenhuma maneira de incluir ganchos adicionais automaticamente como um gancho "padrão" para todos os repositórios recém-criados.

Suponho que você poderia construir um script de shell wrapper para criar novos repositórios que chama o comando svnadmin create com uma variável definida para o caminho do repositório seguido por uma cópia do gancho de commit personalizado na pasta path/to/repo/hooks e usar isso para todos os novos repositórios.

Por último, como você mencionou que esse gancho personalizado em particular é um gancho de commit, devo repetir o aviso dado porControle de versão com Subversionao discutirscripts de gancho(ênfase minha):

Embora os scripts de gancho possam fazer quase tudo, há uma dimensão na qual os autores dos scripts de gancho devem mostrar moderação:não modifique uma transação de commit usando scripts de gancho. Embora possa ser tentador usar scripts de gancho para corrigir automaticamente erros, deficiências ou violações de políticas presentes nos arquivos que estão sendo confirmados, isso pode causar problemas. O Subversion mantém caches do lado do cliente de certos bits de dados do repositório, e se você alterar uma transação de commit dessa forma, esses caches se tornarão indetectavelmente obsoletos. Essa inconsistência pode levar a um comportamento surpreendente e inesperado. Em vez de modificar a transação, você deve simplesmente validar a transação no gancho pré-commit e rejeitar o commit se ele não atender aos requisitos desejados. Como bônus, seus usuários aprenderão o valor de hábitos de trabalho cuidadosos e voltados para a conformidade

informação relacionada