Eu tenho lutado nos últimos dois dias para receber notificações por e-mail pós-commits trabalhando no meu servidor SVN (rodando via HTTP com o Apache2 no Ubuntu 9.10). O SVN confirma o trabalho bem, mas por alguma razão os ganchos não estão sendo executados corretamente.
Aqui estão as configurações:
- Usuários acessam o repositório via HTTP com o módulo apache dav_svn (eu criei usuários / senhas via htpasswd em um arquivo dav_svn.passwd).
dav_svn.conf:
<Location /svn/repos>
DAV svn
SVNPath /home/svn/repos
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
</Location>
- Eu criei um arquivo de gancho post-commit que grava uma mensagem simples em um arquivo na raiz do repositório:
/ home / svn / repos / hooks / pós-commit:
#!/bin/sh
REPOS="$1"
REV="$2"
/bin/echo 'worked' > ${REPOS}/postcommit.log
Eu configurei todo o repositório como propriedade de www-data (o usuário do apache) e atribuí as permissões 755 ao script de pós-commit
quando eu testo o script post-commit usando o usuário www-data em um ambiente vazio, ele funciona:
sudo -u www-data env - /home/svn/repos/hooks/post-commit /home/svn/repos 7
Mas quando eu me comprometo em uma máquina cliente, o commit é bem sucedido, mas o script post-commit não parece ser executado.
Eu também tentei executar um script simples para o gancho pre-commit, e recebo um erro, mesmo com um script de pré-commit vazio:
"Confirmação falhada (detalhes a seguir):
Não é possível criar stdout nulo para hook '/ home / svn / repos / hooks / pre-commit': permissão negada "
Eu fiz algumas pesquisas no Google por esse erro e presumo que isso seja um problema com o usuário do apache (www-data) não ter permissões adequadas, especificamente para executar o / dev / null. Eu também li que a razão de post-commit falhar silenciosamente é porque isso não é reportado com stdout.
De qualquer forma, também tentei dar ao usuário apache (www-data) a propriedade de todo o repositório e editei o virtualhost do apache para permitir operações na raiz do servidor, e ainda estou recebendo permissão negada
/etc/apache2/sites-available/primarydomain.conf
<Directory />
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Qualquer ideia / sugestão será muito apreciada!
Obrigado