Eu consegui trabalhar. Eu tive que escrever meu próprio programa c, mas funciona!
graças a informações que encontrei aqui: link
Eu tenho um servidor web debian com o subversion rodando nele.
Estou tentando usar o script post-commit para atualizar minha versão de teste do meu site.
#!/bin/sh
/usr/bin/svn update /home/sites/example.com/www >> /var/log/svn/example.log 2>&1
se eu executar esse comando a partir da linha de comando conectada como usuário 'derek', tudo funcionará bem
mas quando é executado como post-commit, recebo o seguinte erro no meu arquivo de log:
svn: Can't open file '/home/sites/example.com/www/.svn/lock': Permission denied
Ok, então eu sei que o que está acontecendo aqui é que o usuário que está chamando o script de pós-commit não é 'derek', então ele não tem permissão.
Então, minha pergunta é qual usuário está chamando o script de pós-commit.
o daemon svnserve é executado como derek ... Eu pensei que isso significaria que o comando post-commit seria chamado como derek também, mas não parece.
Qualquer ideia de como eu posso descobrir qual usuário está chamando
e, em segundo lugar, qual seria o método de melhor prática para permitir o acesso desse usuário? Eu não acho que adicioná-lo ao grupo ajudaria porque o grupo não tem o acesso de gravação aos diretórios .svn por padrão.
ATUALIZAÇÃO: Acabei de descobrir que www-data é o usuário que parece estar chamando o script. Agora, naturalmente, www-data não pode executar o comando svn.
Eu consegui trabalhar. Eu tive que escrever meu próprio programa c, mas funciona!
graças a informações que encontrei aqui: link
who am i >> /var/log/svn/example.log
resultará em qual usuário o comando está sendo executado.
Hmm. Os ganchos são executados como o usuário svnserve está executando como.
Subversion executes hooks as the same user who owns the process that is accessing the Subversion repository. In most cases, the repository is being accessed via a Subversion server, so this user is the same user as whom the server runs on the system