我一直在考虑我目前正在使用的部署过程,我想知道是否有一种很好的方法来处理分支/标记将要/已经发布到生产的代码。
在某些时候,我想将分支作为发布分支,并对分支进行最后一分钟更改并释放它。然后在释放后我想将它保存为标签。
为了澄清,我正在寻找命名,处理分支和处理标记的约定。我也想知道是否有其他方法来处理这种情况。
答案 0 :(得分:2)
我建议阅读这个答案
基本上有一个名为RELEASE的分支,如果你愿意,可以从那里标记。并在trunk中保留前沿代码版本
就发布命名而言:它取决于最适合您的内容以及看到版本号的人员。
考虑使用MajorRelease.MinorRelease,然后可能在技术上感兴趣的某处你甚至可以指定补丁发布号(e.gg app autoupdates和major.minor保持相同)。
专业:重大变化 - >新功能/打破兼容性 次要:接口兼容(例如性能) 补丁:错误修复
答案 1 :(得分:1)
即使您没有使用TFS,也可以使用此处的信息作为指导。
答案 2 :(得分:1)
工作方式很多。我使用的是以下内容:
project_repository | |- trunk //Where the current in support release is. | |- branches //Where new features/big fixes or refactors are made. | |- tags //Where all releases are tagged. | |- releases //where all release tags are located |- daily //where all daily tags are located.
我们使用的命名如下:
为了遵循这种结构和命名约定,我们有一组工具和脚本可以帮助这种方式工作。此外,每天都有标记由构建服务器生成。
答案 3 :(得分:0)
我使用CruiseControl.Net自动化构建过程。我们的构建对应于构建号,因此dll版本将为6.5.4.1234。当我们有主要和次要版本时,6和5总是会手动更新。 4在构建之后手动更新(并且1234也被重置为0)。构建过程始终将1234更新为1235。
当我们从trunk发布时(版本总是6.0.0.x),我们会手动分支并将其称为Branch_6_0。然后该分支将构建为6.0.1。 Trunk会移动到6.1或7.0。
CruiseControl有两种模式(开发和测试)。测试始终按需创建,并将创建与构建版本对应的分支。
答案 4 :(得分:0)
在某些时候我想做一个分支 作为发布分支并制作任何 最后一分钟更改分支和 释放它
这让我很担心。通常,您需要创建一个分支,对其进行所有开发,然后使用主干重新集成该分支。从主干上的这一点创建您的标签。如果您想进行更多更改,请创建新分支,编辑,重新集成和重新发布。
请勿尝试对发布分支进行更改,因为您可能会丢失它们,或者将它们合并到主干上时会遇到麻烦。
发布分支的另一种方法是对trunk进行所有开发更改,并在准备好后创建一个release / tag分支。对于小型开发商店来说,这通常是最简单的方法。 (当您对其他人正在进行更改的产品进行重大更改时,另一种方法很有效。)