我有一个生成一些键的脚本。此脚本必须在 svn 服务器上提交它们。他们是不同的。你能帮我一些想法吗?
我想到了 svn php lib 和系统/exec,但不知道如何与 svn 服务器连接并在那里保存文件。
附言更多关于问题。这是不可能的。我们的生产服务器从SVN存储库部署,有时会为帐户生成文档。我们需要将它们保存在我们的存储库中,该存储库已从生产中关闭以进行写入。所以我们用另一种方式。很抱歉让您失望。
编辑:在开始之前,签出存储库的新副本。SVN将记住服务器并自动保存所有提交的内容。
$ svn co svn-server/path/to/repo /path/to/working/copy
您可以使用 svn 客户端和 exec() 方法提交特定路径中的所有文件,并提供特定的提交消息。只要 PHP 的 Subversion 绑定不稳定,我就会使用它:
<?php
/* To commit all files in /path/to/working/copy */
$message="'This is my commit message'";
$command = "svn ci -q -m $message /path/to/working/copy";
exec($path);
SVN lib非常简单。首先,设置用户名和密码
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_USERNAME, 'username');
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_PASSWORD, 'password');
svn_update(realpath('working-copy'));
//TODO: change files in working copy
var_dump(svn_commit('Changelog', array(realpath('working-copy'))));
如果您没有工作副本,请使用svn_checkout
在 PHP 中查看以下 SVN 函数
svn_commit就是其中之一...
注意
此函数是实验性的。此函数的行为、名称和周围的文档可能会在 PHP 的未来版本中更改,恕不另行通知。使用此功能的风险应由您自行承担。