Por que meu gancho pós-commit do Subversion do Apache está falhando?

3

Então, estou tentando fazer com que um post-commit funcione no meu servidor Apache Subversion, especificamente estou tentando enviar e-mails para minha conta do Google, conforme descrito em este link .

Depois de definir as permissões para o script e a cópia de trabalho para o mesmo usuário e acesso de leitura / gravação, ele começou a causar erros de MERGE quando os usuários tentaram confirmar.

Depois de algumas leituras, descobri que foi porque o gancho post-commit não funcionou e descobri que digitando

svn - ./post-commit commit  ../ 250 mailer.conf

Eu recebo este erro:

> annerajb@annerajb-desktop:~/Desktop/TotEM_SVN/hooks$ env - ./post-commit.test commit ../ 250

/var/lib/python-support/python2.6/svn/fs.py:27: DeprecationWarning: The popen2 module is deprecated.  Use the subprocess module.

  import sys as _sys, os as _os, popen2 as _popen2, tempfile as _tempfile

Traceback (most recent call last):

  File "/usr/share/subversion/hook-scripts/mailer/mailer.py", line 1351, in <module>
    svn.core.run_app(main, cmd, config_fname, repos_dir, sys.argv[3:3+expected_args])

  File "/var/lib/python-support/python2.6/svn/core.py", line 288, in run_app
    return apply(func, (application_pool,) + args, kw)

  File "/usr/share/subversion/hook-scripts/mailer/mailer.py", line 80, in main
    revision = int(cmd_args[0])

ValueError: invalid literal for int() with base 10: ''

./post-commit.test: 5: ../: Permission denied

Não sei porque o cmd_args [0] está vazio se estou passando um valor para ele.

#!/bin/sh
REPOS="$1"
REV="$2"
/usr/share/subversion/hook-scripts/mailer/mailer.py commit "$REPOS" \
        "$REV" /usr/share/subversion/hook-scripts/mailer/mailer.conf
    
por user8761 28.09.2010 / 11:04

1 resposta

1

as permissões não devem ser definidas para cópia de trabalho, mas para acesso ao repositório. Também o direito de execução para o script deve ser definido pelo usuário executando o servidor svn (ou servidor httpd - dependendo da sua solução).

Do erro acima, parece que o usuário que está executando o script não tem acesso direto ao repositório e não pode obter o número de revisão.

m

    
por 09.06.2009 / 09:54

Tags