O gancho pós-commit do Subversion não será executado no commit, o script funciona porque posso executá-lo na linha de comando
-
21-12-2019 - |
Pergunta
Acabei de criar um novo repositório.Meu servidor é Ubuntu 12.04 32 bits.Quero que meus commits estejam ativos assim que eu os tiver confirmado.Isso é conseguido criando uma cópia de trabalho em meu diretório html público e fazendo com que o gancho pós-commit atualize essa cópia de trabalho.Eu configurei isso usando as instruções aqui:
http://www.frenssen.be/content/using-subversion-automatically-update-live-website
O problema é que meu pós-commit não será executado quando meu projeto for confirmado. Meu projeto é comprometido perfeitamente.Eu sei que o script também é válido, porque posso executá-lo com
env ./post-commit
dentro do hooks
diretório e ele é atualizado corretamente.
Achei que poderia ser uma questão de permissões, então fiz uso extensivo de chown
para garantir que www-data
é proprietário de:
the repo /home/svn/repo2
the working copy /var/www/html
the hook /home/svn/repo2/hooks/post-commit
the update binary /home/svn/autoupdate/autoupdate
Mas ainda nada.Meus commits foram bem-sucedidos, mas o gancho nunca é executado.Meu script de gancho é assim:
#!/bin/sh
/home/svn/autoupdate/autoupdate
Toda a pesquisa no Google parece apontar para um problema de permissões, mas não consigo descobrir isso.
Solução
Você pode repetir o exemplo desse cara e ver se funciona?
mikewest.org/2006/06/subversion-post-commit-hooks-101
Você recebe um erro ao confirmar?
Se o seu gancho pós-commit realmente falhou, acho que você veria evidências disso em qualquer cliente que estivesse usando para realizar o check-in.Estou quase suspeitando que o pós-commit não está disparando.Apenas para verificar, o arquivo precisa ser chamado de post-commit, tudo em letras minúsculas, e não post-commit.tmpl.