我希望我的PHP应用程序标有它使用的修订号,但我不想使用CruiseControl或更新文件并每次上传它.我该怎么办?
SVN关键字不是一个好的解决方案.正如其他人所指出的,在文件中添加$ Revision $只影响特定文件,这可能不会长时间改变.
记住在每次提交之前"编辑"文件(通过添加或删除空行)是没有意义的.您也可以手动输入修订版.
一个很好的方法(据我所知)是一个自动部署过程(这总是一件好事)并使用命令svnversion.这是我做的:
我需要修改的地方包括:.此"version.php"文件仅包含修订号.此外,它不是存储库的一部分(它被设置为被忽略).以下是我创建它的方法:
1)在服务器上安装SVN的项目中,我也使用它进行部署.获取最新版本到服务器我有一个脚本,其中包括以下内容(它在服务器上运行):
cd /var/www/project svn update rm version.php svnversion > version.php
2)在未安装SVN的项目中,我的部署脚本更复杂:它在本地创建version.php文件,压缩代码,上传并提取它
假设您的webroot是subversion树的签出副本,您可以解析/.svn/entries文件并挂出修订号(此处为第4行)...
在PHP中:
$svn = File('.svn/entries'); $svnrev = $svn[3]; unset($svn);
这就是我开始工作的方式.如果您的服务器设置为允许shell_exec并且您安装了SVN,则运行:
$revision = `svnversion`;
要么
$revision = shell_exec('svnversion');