Svn Subversion挂钩不永久接受证书

Svn Subversion挂钩不永久接受证书,svn,hook,svn-hooks,Svn,Hook,Svn Hooks,我希望有人能回答我的问题 我已经建立了Subversion,由Apache2+SSL提供服务,进行web开发 我想要一个在我的测试服务器上运行svn更新的post-commit钩子,这样当有人提交时,它会自动更新测试站点。钩子不起作用,因为证书是自生成的,并且不受信任 我试着永久地接受(p),但事实并非如此 有什么想法吗?您没有说测试服务器正在运行哪个平台,但如果它是Windows box,则需要将证书添加到测试服务器的证书存储中。以下technet文章可能会有些用处: 可能是subver

我希望有人能回答我的问题

我已经建立了Subversion,由Apache2+SSL提供服务,进行web开发

我想要一个在我的测试服务器上运行svn更新的post-commit钩子,这样当有人提交时,它会自动更新测试站点。钩子不起作用,因为证书是自生成的,并且不受信任

我试着永久地接受(p),但事实并非如此


有什么想法吗?

您没有说测试服务器正在运行哪个平台,但如果它是Windows box,则需要将证书添加到测试服务器的证书存储中。以下technet文章可能会有些用处:


可能是subversion是以不同的用户身份运行的,而不是在钩子调用时接受证书的用户。尝试找出用户(例如,在提交后钩子脚本中放入“echo$user>/tmp/svn hook user”),并使用sudo将证书作为该用户接受


或者,查看Subversion书籍,了解如何设置您的配置,以便接受自签名证书:。

您是否在脚本中使用sudo或其他东西?Sudo通常清理环境变量,因此HOME不存在。您必须具有可写的主目录,subversion可以在其中存储有关永久接受证书的信息。所以在脚本开始时自己设置HOME变量,它应该可以工作。

root拥有$HOME中的.subversion文件夹,所以我删除了它并再次运行“svn up”。现在一切都好了。

在Linux下:

在这里,我通过将$HOME/.subversion/auth/svn.ssl.server中的文件chmoded到-rw-r--r--,解决了这个问题。
显然,如果服务器获得新的或升级的证书,它会写入新文件,但不会为自己添加写入权限。使用-r--r--r--rights时,svn程序可以工作,但它无法将“永久接受”标志写入文件:)

在使用Apache的Windows服务器上设置此选项时遇到了相同的问题。提交后钩子将失败。我不确定SVN是否是独立的,但我使用作为Windows服务运行的VisualSVN服务器。此服务的默认用户帐户是网络服务-因此我只需将该帐户更改为我自己的管理员帐户,一切正常。

当您的测试站点位于同一服务器上时,请使用文件://签出存储库以避免证书检查

svn co file:///path_to/your/repo

我投了赞成票,因为我在谷歌上搜索了这个答案,这为我指明了正确的方向(p) '失败是因为~/.subversion不属于当前所有者。修好它。如果有疑问,请运行“strace e-trace=file svn up”,查看它在尝试写入时出错的文件。我一直想知道为什么svn不记得我保存的密码或受信任的证书,这就是我需要的答案。谢谢由于这是google上的最高结果,我要补充一点,在我们的案例中,仅仅给予
+w
权限是不够的。我们必须删除
~/.subversion/auth/svn.ssl.server/
中保存的证书,并让它们重新生成。可能会帮助其他人解决这个问题。