在CVS中,什么时候TAG应该比BRANCHING更受青睐,反之亦然?

时间:2020-03-06 14:49:37  来源:igfitidea点击:

我认为标题应该足够好。

解决方案

当我们要标记里程碑时,应使用标签。里程碑可能与日常构建一样小。

当我们要独立于另一个分支/主干进行更改时,应使用分支。

分支还应用于主要的里程碑,例如发行版。不过,这取决于分支策略。

标签

可以将其视为及时的快照。我希望能够回到那个确切点。但是,它永远不会改变。我们不对已标记元素进行签入。

可以标记的内容:

  • 发布(主要和次要)
  • 补丁已发送给客户
  • Bug修复
  • 里程碑(alpha,beta等...)
  • 成功的每日构建

分行

该分支将在其上进行开发(即签入)。
我们可以根据标签创建分支(例如,进行错误修复)。
我们可以创建一个分支来开发功能,然后将其合并回主干。
我们可以为发行版本(次要版本或者主要版本)创建分支。

关键是分支可以修改,标签不能修改。

除其他答复外,

对于次要发行版,我们使用标签;对于发行版,我们使用分支。例如

v1.0 <-- Branch  
  v1.0.1 <-- Tag  
  v1.0.2 <-- Tag  
v1.1 <-- Branch  
  v1.1.1 <-- Tag  
  v1.1.2 <-- Tag  
v1.2 <-- Branch  
  v1.2.1 <-- Tag  
  v1.2.2 <-- Tag  
v1.3 <-- Branch  
  v1.3.1 <-- Tag  
  v1.3.2 <-- Tag  
v1.4 <-- Branch  
  v1.4.1 <-- Tag  
  v1.4.2 <-- Tag  
v1.5 <-- Branch  
  v1.5.1 <-- Tag  
  v1.5.2 <-- Tag

若要使用Microsoft的类比,"分支"是Windows(95,XP,Vista等)的发行版,而标记是Service Pack。