Collabnet post-commit钩子无法执行Perl脚本

时间:2015-08-06 16:40:00

标签: windows perl batch-file svn collabnet

我试图建立Slack Subversion集成。我在Windows下使用Collabnet Edge。 Slack站点建议调用Perl脚本(Here)。我已经安装了Dwimperl,并编写了一个批处理文件来运行脚本,并将参数传递给perl脚本。如果我从命令行手动调用它,这一切都能正常工作,但是当Subversion调用它时显然有些不对劲,因为我在Slack通道中看不到任何东西。

批处理文件有一行:

_mc._back.onRelease = function() :Void
{
    var args:Array = new Array();
    args.push((_root._xmouse - this._parent._posMiniMapX) * this._parent._ratio);
    args.push((_root._ymouse - this._parent._posMiniMapY) * this._parent._ratio + this._parent._bpa / this._parent._ratio);
    fscommand("MoveCameraMiniMap", args);
}

我已经验证了在提交后通过将%1和%2回显到文件来调用钩子,并且行为与我期望的一样。

我的猜测是Subversion在没有设置环境变量的情况下调用批处理文件,或者沿着这些行调用,但我完全不熟悉Perl而我不知道哪个。我通过绝对路径调用perl可执行文件,所以即使%PATH%为空,我认为它应该可以工作。

一个相关的问题是:如何调试这样的问题? Collabnet日志文件中没有任何内容,而不是我看到的内容

1 个答案:

答案 0 :(得分:0)

在这种情况下,它只是需要设置的PATH变量。具体来说

SET PATH=C:\Dwimperl\perl\bin;C:\Dwimperl\perl\site\bin;C:\Dwimperl\c\bin 

在批处理文件的开头解决了问题。