6

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

我设置了 Subversion,由 Apache2+SSL 提供服务,进行 Web 开发。

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

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

有任何想法吗?

4

7 回答 7

9

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

于 2009-02-26T18:21:38.220 回答
6

在 Linux 下:

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

于 2010-03-29T12:47:39.277 回答
1

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

于 2008-10-30T08:25:35.967 回答
1

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

或者,查看有关如何设置配置以便接受自签名证书的 Subversion 书籍:SSL 证书管理

于 2008-10-30T12:00:54.207 回答
0

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

svn co file:///path_to/your/repo
于 2011-05-18T18:02:47.353 回答
0

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

于 2008-10-30T17:17:23.163 回答
0

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

于 2010-08-22T02:38:47.670 回答