当前位置:  开发笔记 > 编程语言 > 正文

如何在PHP中获取Subversion修订版号?

如何解决《如何在PHP中获取Subversion修订版号?》经验,为你挑选了3个好方法。

我希望我的PHP应用程序标有它使用的修订号,但我不想使用CruiseControl或更新文件并每次上传它.我该怎么办?



1> daremon..:

SVN关键字不是一个好的解决方案.正如其他人所指出的,在文件中添加$ Revision $只影响特定文件,这可能不会长时间改变.

记住在每次提交之前"编辑"文件(通过添加或删除空行)是没有意义的.您也可以手动输入修订版.

一个很好的方法(据我所知)是一个自动部署过程(这总是一件好事)并使用命令svnversion.这是我做的:

我需要修改的地方包括:.此"version.php"文件仅包含修订号.此外,它不是存储库的一部分(它被设置为被忽略).以下是我创建它的方法:

1)在服务器上安装SVN的项目中,我也使用它进行部署.获取最新版本到服务器我有一个脚本,其中包括以下内容(它在服务器上运行):

cd /var/www/project
svn update
rm version.php
svnversion > version.php

2)在未安装SVN的项目中,我的部署脚本更复杂:它在本地创建version.php文件,压缩代码,上传并提取它



2> Oli..:

假设您的webroot是subversion树的签出副本,您可以解析/.svn/entries文件并挂出修订号(此处为第4行)...

在PHP中:

$svn = File('.svn/entries');
$svnrev = $svn[3];
unset($svn);


@ Brent.Longborough如果可以,我会拒绝你的评论,但我不能,所以我会留下这个评论.
使您的应用程序依赖于Svn内部.对不起,不,不
Subversion 1.7不再使用.svn/entries文件来实现此目的; 如果您的目标系统没有可用的svn二进制文件,则必须深入了解.svn/wc.db sqlite数据库.

3> Nathan J.B...:

这就是我开始工作的方式.如果您的服务器设置为允许shell_exec并且您安装了SVN,则运行:

$revision = `svnversion`;

要么

$revision = shell_exec('svnversion');


这怎么不是公认的答案.它看起来比任何其他方案都完美和方式更好.你甚至可以将cron填充到文本文件中.谢谢!简单而完美,正是OP所要求的
推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有