我想在svn中提交特定路径时签出。 在VisualSVN中 - >属性 - >提交后挂钩:
"D:\Program Files\VisualSVN Server\bin\svn.exe" checkout https://***.****.***/svn/Mobile/Node/trunk C:\MyPath
然后我去做了提交,但我没有看到任何结账。 当我手动执行提交后脚本时,它会检出该路径。
我收到错误“ - 证书不是由受信任的机构颁发的。请使用指纹手动验证证书!证书信息:”
我该如何解决?
答案 0 :(得分:0)
official Subversion FAQ: "Why aren't my repository hooks working?"
中介绍了常见的挂钩疑难解答步骤您遇到的特殊问题是这些事实的副作用:
使用自签名证书运行VisualSVN Server,该证书在您的环境中不受信任。通常,您必须在客户端手动接受此类证书。
挂钩在运行VisualSVN Server服务的帐户下执行。
默认情况下,VisualSVN Server在Network Service
account下运行。据我猜你的VisualSVN Server实例在Network Service
帐户下运行,所以你必须在网络服务下登录,对存储库运行svn.exe
并永久接受证书。您无法在Network Service
帐户下登录,因为您通常会在您的用户帐户下登录,但有一个明智的技巧可以提供帮助。
因此,有1个正确的解决方案和2个解决方法:
解决方案:使用受信任的签名服务器证书运行VisualSVN Server。您可以从证书颁发机构(即购买证书)或sign server's certificate with Active Directory Certificate Services installed in your organization获得一个。
WORKAROUND1:Configure VisualSVN Server to run under a custom dedicated user account,在此帐户下登录Windows,针对存储库运行svn.exe
并永久接受不受信任的证书。
WORKAROUND2:在Network Service
下运行VisualSVN Server并使用psexec
工具接受Network Service
帐户下的证书:
您可以使用Sysinternals's PsExec utility在svn.exe
下运行Network Service
并手动接受证书。执行以下命令行以在Network Service
帐户下运行命令提示符(如果您在其他帐户下运行该服务,请调整命令行):
psexec -u "nt authority\network service" cmd.exe
然后使用svn.exe
永久接受证书。运行以下命令并在出现提示时永久接受证书:
svn info <URL-to-repository>