繁体   English   中英

我可以在没有工作副本的情况下使用PHP4与SVN存储库进行交互吗?

[英]Can I use PHP4 to interact with an SVN repository without a working copy?

我想在SVN存储库上执行SVN操作(如果需要的话,通过HTTP),而不需要工作副本。 基本上,这是我想做的事情:

  1. 检查目录是否远程存在。

    • 如果目录不存在,请创建它
  2. 检查存储库中是否存在文件

    1. 如果文件不存在,请使用我的内容在存储库中创建一个新文件
      • 这必须使用我提供的作者姓名,而不是经过身份验证的WebDAV作者(这就是为什么WebDAV方法对我不起作用的原因)
    2. 如果该文件确实存在,请将其内容替换为我指定文件的内容。

我一直在尝试使用自动版本控制方法,但是该方法要求我为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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM