【问题标题】:How to call a python script in visualsvn server precommit hook running on windows如何在 windows 上运行的 visualsvn 服务器预提交钩子中调用 python 脚本
【发布时间】:2019-06-18 19:09:00
【问题描述】:

我为 pre-commit 钩子实现了一个 python 脚本,以检测提交消息、作者、更改的路径,然后在特定情况下抛出异常或错误。

我想在 VisualSVN 服务器 Pre-commit Hook 中设置这个脚本 pre-commit.py 在 Hooks 中使用这个命令

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

当我想提交时,我收到了这个错误Access Denied 看起来 pre-commit 钩子无法识别我的语法


【问题讨论】:

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


    【解决方案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. 点击Hooks标签。
    4. 点击Pre-commit钩子并点击Edit

    【讨论】:

    • 我还是有同样的错误请看图
    • 1.挂钩编辑器窗口应该具有您现在在 Notepad++ 中看到的内容。 2. 将 Python 脚本文件从 Desktop 目录复制到存储库的 hooks 目录(例如 C:\Repositories\MyRepo\hooks)并相应地调整路径。 3. 确保VisualSVN Server服务账号对所有涉及的文件有权限,包括python.exe。
    • 如何检查VisualSVN Server服务账号是否拥有对包括python.exe在内的所有文件的权限?
    • 使用services.msc 或运行sc qc visualsvnserver 命令查看服务帐户SERVICE_START_NAME 的名称。默认情况下,该帐户为 Network Service。查看 NTFS 权限使用 Get-Acl PowerShell cmdlet 或 Windows 文件资源管理器:ntfs.com/ntfs-permissions-setting.htm
    • 你知道如何在SVN pre-commit 中列出特定目录吗?我正在使用svn list [repor_path],但是这个命令在预提交钩子中不起作用我如何使用svnlook 命令处理它?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-07
    • 2013-09-10
    • 2012-02-20
    • 1970-01-01
    • 1970-01-01
    • 2014-01-03
    相关资源
    最近更新 更多