svn checkout 无法通过 phing 工作

发布于 2024-11-19 11:26:09 字数 440 浏览 2 评论 0原文

我目前正在尝试编写一个内部应用程序,以便只需单击一下即可将我们的项目部署到验收和生产服务器。 我们正在使用 phing 来完成此任务。

目前我在检查(或进行 svn 导出)该项目时遇到困难。我使用以下命令:

<exec command="svn checkout ${svn.host} ${svn.exportdir} --force --username server --password <password>"  />

在普通命令行上,这完美地工作,但是由于主机使用 https,所以系统提示我接受证书。问题是似乎没有参数可以自动接受证书。

--trust-server-cert 也没有帮助,因为证书由于主机名不匹配而被拒绝,其中该参数仅绕过“CA 未知”错误。

关于如何查看(或导出、更新……)项目有什么想法吗?

I'm currently trying to write an internal application to be able to deploy our projects to acceptance and production servers with a single click.
We are using phing to accomplish this.

At the moment I'm having difficulty checking out (or doing an svn export) the project. I use the following command:

<exec command="svn checkout ${svn.host} ${svn.exportdir} --force --username server --password <password>"  />

on a normal command line this works perfectly, however i get prompted to accept a certificate because the host uses https. Problem is there seems to be no parameter to automatically accept a certificate.

the --trust-server-cert doesn't help either, becase the certificate is rejected due to a hostname mismatch, where the parameter only bypasses a "CA is unknown"-error.

Any ideas on how I can check out (or export, update, ...) the project?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

以歌曲疗慰 2024-11-26 11:26:09

在 svn 服务器 HTTPS 地址上执行 wget 并永久接受证书。

$ wget https://svn.mydomain.com/repos

然后按 p 接受证书。


我还在 PHP 文档中添加了一些关于证书问题

只需在命令行上调用

svn checkout https://svn.mydomain.com/repos --force --username server --password iMPs+nana0kIF

并接受证书即可。


当执行Phing命令的用户不是root时仍然可能出现问题,那么你必须以运行Phing命令的用户身份执行此命令:

su wwwrun wget https://... 
su wwwrun svn checkout https://...

Do a wget on the svn servers HTTPS adress and accept the certificate permanently.

$ wget https://svn.mydomain.com/repos

And then press p to accept the cert.


I also added some hints to the PHP documentation about the problems with certificates:

Simply call

svn checkout https://svn.mydomain.com/repos --force --username server --password iMPs+nana0kIF

on your command line and accept the cert.


There could be still a problem when the user which executes the Phing command is not root, then you have to execute this command as the user which runs the Phing command:

su wwwrun wget https://... 
su wwwrun svn checkout https://...
花海 2024-11-26 11:26:09

只需以将要运行 phing 的用户身份进行一次手动检查即可。如果需要,您可以查看 /dev/null。一旦您接受了证书,它将保持接受状态(如果该用户有 .subversion 目录来存储它)。

顺便说一句,您通过和 ExecTask 使用 svn 命令行界面而不是仅使用 SvnCheckoutTask

Just do one manual checkout as the user that will be running phing. You can checkout to /dev/null if you want to. Once you have accepted the certificate, it will stay accepted (if that user has a .subversion directory to store it).

By the way, any specific reason why you are using the svn commandline interface through and ExecTask instead of just using the SvnCheckoutTask directly?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文