如何在 PHP 中获取 Subversion 版本号?
我想让我的 PHP 应用程序标上它使用的修订号,但我不想使用 CruiseControl 或更新文件并每次上传.我该怎么做?
I want to have my PHP application labeled with the revision number which it uses, but I don't want to use CruiseControl or update a file and upload it every time. How should I do it?
推荐答案
SVN 关键字不是一个好的解决方案.正如其他人指出的那样,在文件中添加 $Revision$ 只会影响特定文件,它可能长时间不会改变.
SVN keywords is not a good solution. As others pointed out adding $Revision$ in a file only affects the specific file, which may not change for a long time.
记住在每次提交之前编辑"一个文件(通过添加或删除一个空行)是没有意义的.您也可以手动输入修订版.
Remembering to "edit" a file (by adding or removing a blank line) before every commit is pointless. You could as well just type the revision by hand.
一个好方法(我知道)是有一个自动化的部署过程(这总是一件好事)并使用命令 svnversion.这是我所做的:
One good way to do it (that I know of) is to have an automated deployment process (which is always a good thing) and using the command svnversion. Here is what I do:
只要我需要修改,我就做一个包含:<?php include 'version.php';?>
.这个version.php"文件只有修订号.此外,它不是存储库的一部分(它被设置为被忽略).这是我创建它的方式:
Wherever I need the revision I do an include: <?php include 'version.php'; ?>
. This "version.php" file only has the revision number. Moreover it is not part of the repository (it set to be ignored). Here is how I create it:
1) 在服务器上安装了 SVN 的项目中,我也使用它进行部署.将最新版本发送到服务器我有一个脚本,除其他外,它执行以下操作(它在服务器上运行):
1) On projects where SVN is installed on the server, I also use it for deployment. Getting the latest version to the server I have a script that among other things does the following (it runs on the server):
cd /var/www/project
svn update
rm version.php
svnversion > version.php
2) 在没有安装 SVN 的项目中,我的部署脚本更复杂:它在本地创建 version.php 文件,压缩代码,上传并提取它
2) On projects where SVN is not installed my deployment script is more complex: it creates the version.php file locally, zips the code, uploads and extracts it
相关文章