[英]Can I use PHP4 to interact with an SVN repository without a working copy?
我想在SVN存储库上执行SVN操作(如果需要的话,通过HTTP),而不需要工作副本。 基本上,这是我想做的事情:
检查目录是否远程存在。
检查存储库中是否存在文件
我一直在尝试使用自动版本控制方法,但是该方法要求我为WebDAV服务器设置身份验证,这在我的情况下不理想。 我可以使用FS操作(客户端是SVN 1.6,这么浅的工作拷贝+命令行会的工作),但是这两者缓慢和不雅。
是否存在可以执行我所描述的功能的库(必须在PHP 4.4中才能使用!)?
从很少的经验中,我对PHP的SVN有所了解:如果您可以从PHP脚本到svn
可执行文件进行命令行访问,请按照这种方式进行操作。
它总是比协议的PHP实现更快,并且更可靠。
我尝试过的所有PHP SVN客户端均存在缺陷,错误或完全不稳定。 (不过,我不认识PECL。)
查找svn
命令行,或svn扩展名等效项:
检查目录是否远程存在。
svn info <URL>
如果目录不存在,请创建它
svn mkdir <URL>
检查存储库中是否存在文件
svn info <URL>
如果文件不存在,请使用我的内容在存储库中创建一个新文件
如果没有工作副本,这将变得更加困难。 您可以创建一个临时文件,然后:
svn import /tmp/mytempfile <URL>
如果该文件确实存在,请将其内容替换为我指定文件的内容。
svn delete <URL>
紧接着是上面的内容,没有工作副本就无法修改文件。 请注意,这会导致Subversion的使用情况不太理想。 它旨在存储更改,而不是文件。 我不建议删除/导入来更改几行文本。
这必须使用我提供的作者姓名,而不是经过身份验证的WebDAV作者(这就是为什么WebDAV方法对我不起作用的原因)
您无法使用webdav提供任意作者名,您无法通过HTTP(S)向远程服务器进行身份验证,并且该名称将用作作者。 如果需要其他名称,则需要在服务器上创建另一个用户,并授予该用户访问存储库的权限。
您可以尝试以下课程: http : //www.phpclasses.org/browse/package/4270.html
它应该从PHP 3开始工作...
也许PECL :: svn扩展名 ( 手册 )会做什么?
对于最后一个版本,要求是:
PHP Version: PHP 4.0.0 or newer
似乎有些功能可以满足您的需求; 例如 :
svn_mkdir
:在工作副本或存储库中创建目录。 但是不确定是否可以为您想要的所有功能提供...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.