如何在Windows上运行的Visualsvn服务器预提交钩子中调用python脚本

时间:2019-01-24 23:36:01

标签: python windows svn visualsvn-server pre-commit-hook

我为预提交挂钩实现python脚本,以检测提交消息,作者,更改的路径,然后在特定情况下引发异常或错误。

我想在VisualSVN服务器中将此脚本pre-commit.py设置为Pre-commit Hook 在挂钩中使用此命令

C:\Users\momo\Desktop\pre-commit.py %1 %2

当我要提交时,出现此错误Access Denied似乎预提交钩子无法识别我的语法


enter image description here

1 个答案:

答案 0 :(得分:1)

Python脚本在Windows上不被视为可执行文件。您应该在Windows Batch中将它们包装起来。例如,预提交的挂钩脚本可能如下所示:

set REPOS-PATH=%1
set TXN-NAME=%2
"C:\Python27\python.exe" "C:\Repositories\MyRepository\hooks\pre-commit.py" %REPOS-PATH% %TXN-NAME%

此Windows Batch脚本将运行位于C:\Repositories\MyRepository\hooks\post-commit.py处的Python脚本,并将传递%1%2参数。

手动或通过VisualSVN服务器管理器控制台将此代码放入存储库的\hooks\pre-commit.bat\hooks\pre-commit.cmd文件中:

  1. 启动 VisualSVN服务器管理器控制台。
  2. 右键单击存储库,然后单击属性
  3. 点击挂钩标签。
  4. 点击预提交钩子,然后点击编辑