是否可以在没有外壳访问的情况下进行SVN导出?

时间:2020-03-06 14:41:30  来源:igfitidea点击:

我开始为我的一个项目使用Subversion,如果可以通过运行php或者perl脚本从生产服务器上的存储库中导出最新版本,那将绝对令人惊讶。

生产站点由共享的托管服务提供商托管,该提供商不允许外壳程序访问,例如phpexec()函数。 (我对perl不太了解;我只知道托管人允许perl和自定义cgi脚本)。

在这种环境下可以执行SVN导出吗?

解决方案

SVN支持通过WebDAV(即HTTPS)进行访问。这意味着对于简单的读取访问,我们实际上不需要SVN客户端来访问SVN存储库。我们甚至可以使用Web浏览器,也可以使用任何接受URL作为其参数的PHP函数。 SVN必须在服务器端设置才能与apache一起使用,有关更多信息,请查看svn红皮书

据我所知,还没有完全用PHP或者Perl编写的SVN客户端。所以没有高管,你就不走运了。

解决方法:

  • 根据我们自己的OS以及访问Web空间所必须使用的方法,我们也许可以将Web空间挂载到本地文件系统中,而仅使用系统的SVN客户端进行签出/更新。
  • 再次根据访问方法(我猜是ftp或者sftp),我们可能会更新本地签出并将所有更改同步到Web空间。

看看这个:

http://www.randomsequence.com/articles/svn-backup-script/

当然,我们仍然需要exec,但是正如所说的那样,用PHP编写对svn服务器运行http调用的代码并不难。

否则,类似:

palaniraja.wordpress.com/2008/09/20/svn-export-only-updated-files-between-2-revisions/

干杯!