O servidor VisualSVN não aciona o gancho post-commit

1

Eu tenho um problema que está me deixando louco. Eu quero integrar o VisualSVN Server com o Mantis BT, então quando eu me comprometo do cliente svn, e eu comento algo como "fixed issue # 3" então o problema no Mantis é marcado como resolvido.

Eu segui as etapas do link

Então eu crio um usuário no Mantis chamado 'svn' com função de desenvolvedor e atribuído ao meu projeto. Eu editei meu mantis config.inc e ficou assim:

<?php
$g_hostname = 'databaseserver';
$g_db_type = 'mssqlnative';
$g_database_name = 'mantisbt';
$g_db_username = 'mantis';
$g_db_password = 'mypass';

$g_allow_file_upload = ON;
$g_file_upload_method = DISK;

# User account that connects with Subversion
$g_source_control_account = 'svn';

    # Regular expression to be matched in the comments
    # Example: issue #1
    $g_source_control_regexp = '/\b(?:bug|issue|error)\s*[#]{0,1}(\d+)\b/i';

    # Regular expression to be matched to fix an issue
    # Example: fixed issue #1
    $g_source_control_fixed_regexp = '/\b(?:fixed|fixes|resolved)\s+(?:bug|issue|error)?\s*[#](\d+)\b/i';
    # Status after solving the issue
    $g_source_control_set_status_to = RESOLVED;
    # Resolution after solving the issue
    $g_source_control_set_resolution_to = FIXED;
?>

Então eu crio o arquivo post-commit.bat e coloco na pasta hooks:

@ECHO on
SET REPOS=%1
SET REV=%2

SET PHP="C:\Program Files (x86)\PHP\v5.3\php.exe"
SET CHECKIN="C:\WebSites\mantisbt-1.2.14\scripts\checkin.php"
SET SVNLOOK="C:\Program Files (x86)\VisualSVN Server\bin\svnlook.exe"

SET LOGFILE=C:\log.txt
SET AUTHORFILE=C:\author.txt
SET OUTPUTFILE=C:\output.txt

%SVNLOOK% log -r %REV% %REPOS% > %LOGFILE%
%SVNLOOK% author -r %REV% %REPOS% > %AUTHORFILE%

TYPE %LOGFILE% > %OUTPUTFILE%

%PHP% %CHECKIN% < %OUTPUTFILE% >> %LOGFILE%
ECHO "Post-commit for revision %REV% finished" >> %LOGFILE%
@ECHO off

Todos os caminhos estão bem (verificados muitas vezes) e o .bat executa bem quando eu corro separadamente (ele cria os arquivos de saída).

Cheguei à conclusão de que o VisualSVN não está acionando o post-commit.bat . Eu reiniciei muitas vezes o servidor também. O que estou fazendo errado?

    
por Agustin Meriles 25.02.2013 / 15:50

1 resposta

2

Verifique se a conta de serviço do VisualSVN Server ( Network Service conta por padrão) tem permissões de acesso a todos os arquivos e pastas que o script de pós-teste tenta tocar ou operar.

Acho que "nenhum acesso" a esses locais é a causa raiz:

  • C:\Program Files (x86)\PHP\v5.3\ e são childs,
  • C:\WebSites\mantisbt-1.2.14\scripts\ e é childs.

Pode haver várias razões para um script de gancho não funcionar. Você deve solucionar o problema e obter a saída de erro para entender a causa. A saída de erros ajuda a entender a causa raiz e a corrigi-la.

Para capturar a saída para um arquivo de log, você pode fazer o seguinte:

  1. Renomeie seu atual arquivo post-commit.bat para post-commit-run.bat ,

  2. Crie o seguinte arquivo como seu arquivo post-commit.bat :

    call "%~dp0post-commit-run.bat" %* > %1/hooks/post-commit.log 2>&1

  3. Confirme o repositório e verifique o arquivo de log gerado.

por 25.02.2013 / 16:21