您如何避免忘记增加项目的版本号?

时间:2010-02-03 06:09:27

标签: php version-control project-management

我总是忘记更改bugfix版本的版本号,当我发布1.0.9时,源代码中的版本号可能仍为1.0.0

到目前为止,这并不是一件大事,因为每个版本都记录在SVN中,我可以随时从我的SVN中检索指定的版本。

但我知道它不好,并且在可预见的情况下,它可能会在升级旧版本时引起问题。我将版本号作为参数存储在我的源代码中,我想是否有更好的方法来控制这个数字,特别是对于php web项目(我知道其他一些语言有自动版本生成,但在php中似乎没有?)。

您如何在项目中解决此问题?任何最佳做法?

6 个答案:

答案 0 :(得分:7)

使用TeamCity之类的持续集成软件,并使用接受版本号作为参数的构建脚本。你的构建脚本可能只是调用一个小工具:打开一个文件(versioninfo.php),搜索这个字符串(一些正则表达式的东西),并用给定的参数替换它。


使这更容易的一些额外提示:分支即将发布的每个版本,我们现在有5.0生产(但它仍然是为了修复的目的而构建),5.1是此时进行分支和测试,主干包含5.2。

每次你需要发布一个修补程序,更新TeamCity中的版本号,以及对构建脚本的调用(也应该在TeamCity中完成)。

F.e。我们现在有以下项目:

  • 发布5.0.5(采用/v=5.0.5)
  • 发布5.1(采用/v=5.1)
  • Trunk(采用/v=5.2)

将此脚本与SQL脚本前缀与版本号和自动数据库生成脚本相结合,每个版本创建一个大事务脚本(如:'DPL_Updates_for_5.1.sql')。

当我们将一个版本带到生产中时,我们从TeamCity的分支中获取工件,特定于该版本的数据库脚本会自动添加到zip文件中,我们会给出该文件(加上发行说明)等)到我们的应用管理部门。

答案 1 :(得分:1)

您可以使用Code::Block's AutoVersioning plugin等插件自动增加内部版本号(和/或版本号)。

或者(如果你有太多时间)你可以创建一个SVN脚本来限制具有相同版本号的提交^^。

答案 2 :(得分:1)

拥有描述版本的本地数据库。然后编写一个脚本来构建一个版本,这可以验证存储在源代码中的版本号,并在发布成功时更新数据库。你甚至可以获得乔尔测试点!

答案 3 :(得分:0)

制作一份清单。每次发布时都要关注它。

答案 4 :(得分:0)

我没有太多使用过svn和php。但是我看到有些人将svn版本直接集成到php文件中使用文档,例如/ ** @version $ SVN * / 因此,当我们从主干我们的分支检查时,创建一个构建版本。 这些文件包含/显示当前版本。

答案 5 :(得分:0)

使用phing构建您的发布包。它具有非常灵活的转换功能,甚至可以自动读取SVN的最新版本。