我想在提交发生时将存储库的最新文件签出到服务器本地硬盘驱动器上的文件夹中。
我的post-commit挂钩现在是:
svn checkout https://xyz.mysite.com:7405/svn/ProjectName/ C:\my-temp --non-interactive --no-auth-cache --username myusername --password mypassword
VisualSVN Server创建的.CMD文件在Windows的命令提示符下运行很好,并完成我需要它做的事情。但是当提交发生时运行它时,错误会返回到SVN客户端,并且目标文件夹中没有任何内容。
错误消息显示Access to /svn/ProjectName forbidden
,即使凭据在Commpand Prompt中完美运行。
请让我知道我需要对脚本执行什么操作才能运行。谢谢!
答案 0 :(得分:0)
您是否在服务器上启用了Integrated Windows Authentication(即Active Directory单点登录)?在这种情况下,--username
和--password
参数将不起作用,因为svn.exe
从钩子脚本调用时,将在运行VisualSVN服务器HTTP服务的用户帐户下进行身份验证。
有几种方法可以摆脱身份验证问题:
如果您在网络服务(默认情况下在此帐户下运行HTTP服务)下运行该服务,请向AD 计算机帐户提供对/svn/ProjectName/
的读取权限。网络服务帐户在网络上的计算机帐户凭据下工作。
针对svn checkout
网址运行file://
。这样,客户端直接在文件系统上访问存储库,无需特殊身份验证。该网址应如file:///C:\Repositories\MyProject
。