发布前和发布后我应该如何进行分支和标记管理?

4

我一直在考虑目前正在使用的部署流程,想知道是否有良好的方法来处理已发布或即将发布的代码分支/标记。

我希望将一个分支作为发布分支,并对该分支进行任何最后一刻的更改并发布它。然后,在发布之后,我希望将其保存为标记。

为了澄清,我正在寻找命名、处理分支和标记的约定。我还想知道是否有其他处理情况的替代方法。

  • 您是给发布的分支命名,还是每次都使用相同的发布分支添加新代码?
  • 在成为标记后,是否删除发布分支?
  • 您如何命名您的分支/标记?
5个回答

2
我建议阅读这个答案: SVN中的发布管理 基本上有一个名为RELEASE的分支,你可以从那里打标签。并且将最新的代码版本保留在主干中。
至于发布名称:这取决于什么最适合您以及看到发布号码的人是谁。
考虑使用MajorRelease.MinorRelease,然后可能在技术感兴趣的地方甚至可以指定补丁版本号(例如应用程序自动更新,major.minor保持不变)。
Major:大更改-> 新功能/破坏兼容性 Minor:接口兼容(例如性能) Patch:修补漏洞

1

即使您不使用TFS,您仍然可以将此处的信息用作指导。

分支指南


1

有很多种工作方式,我使用的方式如下:

project_repository
|
|- trunk // 当前支持发布的位置。
|
|- branches // 新功能/大修复或重构所在的位置。
|
|- tags // 所有发布都标记的位置。
     |
     |- releases // 所有发布标记所在的位置
     |- daily // 所有日常工作标记所在的位置。

我们使用以下命名方法:

  • 对于分支,我们根据主要任务进行命名(例如:admin_module_refactor)。
  • 对于标签,如果它们对应于发行标记,则使用版本号进行命名(mayor.minor.micro。例如:1.0.2);如果是每日工作标签,则使用日期进行命名(例如:YY_MM_DD)。

为了遵循这个结构和命名规范,我们有一套工具和脚本来帮助按照这种方式工作。此外,每晚一个构建服务器会生成每日标记。


0

我使用CruiseControl.Net自动化了构建过程。我们将构建与构建号对应,以便dll版本为6.5.4.1234。当我们进行重大和次要发布时,总是手动更新6和5。在构建后手动更新4(然后将1234重置为0)。构建过程总是将1234更新为1235。

当我们从主干发布(版本始终为6.0.0.x)时,我们会手动分支并称其为Branch_6_0。该分支将构建为6.0.1。主干将移动到6.1或7.0。

CruiseControl有两种模式(dev和test)。测试总是按需创建,并创建与构建版本相对应的分支。


0
在某个时刻,我想要创建一个分支作为发布分支,并对该分支进行任何最后一分钟的更改,然后发布它。这是让我担心的部分。通常情况下,您会想要创建一个分支,在其上进行所有开发工作,然后将该分支重新集成到主干中。从主干上的此点创建您的标记。如果您想要进行更多更改,请创建一个新分支,进行编辑,重新集成并重新发布。不要尝试更改发布分支,因为您可能会丢失它们,或者在将它们合并回主干时遇到麻烦。发布分支的另一种方法是将所有开发更改都应用于主干,当您准备好时,创建一个发布/标记分支。对于小型开发商店,这通常是最简单的方法。(当您正在对每个人都在进行更改的产品进行大规模更改时,另一种方法也很有效)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接