Process 您的构建和发布步骤是什么?何时增加构建数量?

Process 您的构建和发布步骤是什么?何时增加构建数量?,process,build,version,numbers,increment,Process,Build,Version,Numbers,Increment,尽管有简单的要求,但我在定义和自动化构建过程时遇到困难: 每个版本都应该有一个唯一的版本号 每个标记的释放都应是可复制的 我所拥有的: C++,红帽企业Linux 5 .x,颠覆开发环境.< 生成计算机(实际上是虚拟机) 带有#的version.h文件定义了主版本、次版本和buildnumber 用于增加.h buildnumber版本的脚本 一个rpmbuild规范文件,用于导出标记的Subversion源、生成并生成rpm安装程序包 问题: 假设每个项目有多个开发人员,那么何时应该增

尽管有简单的要求,但我在定义和自动化构建过程时遇到困难:

  • 每个版本都应该有一个唯一的版本号
  • 每个标记的释放都应是可复制的
  • 我所拥有的:

    • C++,红帽企业Linux 5 .x,颠覆开发环境.<
    • 生成计算机(实际上是虚拟机)
    • 带有#的version.h文件定义了主版本、次版本和buildnumber
    • 用于增加.h buildnumber版本的脚本
    • 一个rpmbuild规范文件,用于导出标记的Subversion源、生成并生成rpm安装程序包
    问题:

    • 假设每个项目有多个开发人员,那么何时应该增加构建编号并签入version.h文件?制造机器?某种颠覆钩子?预构建还是后构建
    提前感谢那些愿意花时间分享构建过程经验的人

    -
    Linux新手。前Windows C++/.NET开发人员。

    为什么不修改生成过程,使其从存储库中获取最新版本号并将其用作生成号

    假设svn包含了产品构建中的所有元素,这将为每个潜在的不同构建提供一个唯一的编号,并使构建时代码库的状态更容易匹配。如果有其他元素可能随时间而变化,则可以添加另一个连接到修订号的项目-可能是日期/时间值


    您不必担心手动增加版本号,因为每次开发人员提交时,他们都会自动增加版本号。

    不要将版本号直接存储在文件中,请使用subversion版本号(或其他单调递增的值,如日期/时间)作为您的版本标识符。在过去,我使用了
    date-u+%Y%m%d%H%m%S“
    ,因为我们使用的是CVS而不是SVN。

    我们有多达40多名开发人员的团队为我们的产品添加代码。每个开发人员将其更改提交到产品的中心位置。这形成了代码提交的有序列表。然后,脚本接受每次提交,并根据最近发布的配置和当前一轮中以前提交的任何更改将其集成到测试构建中。单元测试在每次代码提交完成后运行,并且在当前一轮中添加的任何验收测试也将运行。在每天结束时,单元测试和回归测试将针对不断发展的构建运行


    每周两次,提交的代码更改列表将结束,这将成为新发布的产品配置,并更新代码库。

    我喜欢这个想法以及Andrew的日期想法。我不清楚,是否有一个Subversion版本号应用于每次提交文件时都会递增的文件?或者它是一个项目的东西;每次签入任何文件时都会递增的项目修订号?感谢大家的回复,-EdSubversion修订版对整个存储库都是全局的-对该存储库的任何提交,无论其影响哪些文件,都会增加修订号。Svn info会为同一个repo的不同位置显示不同的修订号吗?[esutton@localhostLRADDS\u BnS]$pwd/home/esutton/projects/LRADDS\u BnS[esutton@localhostLRADDS\u BnS]$svn信息URL:存储库根目录:修订版:665上次更改修订版:665上次更改日期:4月13日[esutton@localhostLRU BnS]$cd文件[esutton@localhost[文件]$svn信息URL:Repository Root:Revision:703上次更改版本:702:Apr 19请参见
    svversion
    以获取全局版本信息: