Visual SVN 服务器 Post-提交挂钩失败

Visual SVN Server Post-commit Hook Fails

我想在提交发生时将存储库的最新文件检出到服务器本地硬盘驱动器上的文件夹中。

我的 post-commit hook 现在是:

svn checkout https://xyz.mysite.com:7405/svn/ProjectName/ C:\my-temp --non-interactive --no-auth-cache --username myusername --password mypassword

VisualSVN 服务器创建的 .CMD 文件 运行 在 Windows 的命令提示符中非常好,可以完成我需要它做的事情。但是,当涉及到 运行 在提交发生时将其固定时,错误会返回到 SVN 客户端并且目标文件夹中不会出现任何内容。

错误消息显示 Access to /svn/ProjectName forbidden,即使凭据在命令提示符中工作得很好。

请让我知道我需要对挂钩 运行 的脚本做些什么。谢谢!

您是否在服务器上启用了 Integrated Windows Authentication(即 Active Directory 单一登录)?在这种情况下,--username--password 参数将不起作用,因为 svn.exe,当从钩子脚本调用时,将在 运行s VisualSVN Server HTTP 的用户帐户下进行身份验证服务。

有几种方法可以解决身份验证问题:

  • 如果你运行Network Service下的服务(HTTP服务运行默认在这个账号下),提供ADcomputer 帐户具有 /svn/ProjectName/ 的读取权限。网络服务帐户在网络上的计算机帐户凭据下工作。

  • 运行 svn checkout 反对 file:// URL。通过这种方式,客户端可以直接在文件系统上访问存储库,并且不需要特殊的身份验证。 URL 应该看起来像 file:///C:\Repositories\MyProject.