4

我们有标准的 Subversion 主干/分支/标签布局。我们有几个用于中长期项目的分支,但到目前为止还没有一个发布版本。这正在快速逼近。

我们应该吗:

  1. 将发布分支和项目分支混合在一起?
  2. 创建发布文件夹?如果是这样,有没有比发布更好的名称?
  3. 创建一个项目文件夹并将当前分支移到那里?如果是这样,还有比项目更好的名称吗?我在其他存储库中看到了“沙盒”和“尖峰”。
  4. 完全是别的东西吗?
4

7 回答 7

10

我推荐以下布局,原因有两个: - 与给定项目相关的所有内容都在树的同一部分;使人们更容易掌握 - 权限处理可能更容易这种方式

顺便说一句:使用很少的存储库而不是很多存储库是个好主意,因为更改历史记录通常可以更好地保存(如果您在存储库之间移动文件,更改历史记录就会消失,除非您采取特殊且有些复杂的操作)。在大多数设置中,应该只有两个存储库:主存储库和供人们试验 Subversion 的沙箱存储库。

project1
   trunk
   branches
     1.0
     1.1
     joes-experimental-feature-branch
   tags
     1.0.0
     1.0.1
     1.0.2
project2
   trunk
   branches
     1.0
     1.1
   tags
     1.0.0
     1.0.1
     1.0.2
于 2008-09-08T09:51:48.700 回答
1

从其他人所说的开始,我们有一个相当严格的从 alpha 到 beta 到生产的进展结构。字母代码是躯干头部的任何东西,并且在大多数情况下保持稳定,但并非总是如此。当我们准备好发布时,我们会创建一个“发布分支”来有效地冻结该代码,并且只对其应用错误修复。(这些被移植回主干)。此外,标签会定期作为候选发布,这些是 beta 版本。一旦代码进入生产阶段,发布分支就会保持开放以提供支持、安全性和错误修复,并且次要版本会被标记并从中发布。

一旦不再支持特定版本,我们就会关闭分支。这使我们能够清楚地区分针对哪些版本修复了哪些错误,然后将它们移到主干中。

会在很长一段时间内破坏系统的重大、长期或大规模更改也有它们自己的分支,但这些更改的生命周期要短得多,并且其中没有“发布”一词。

于 2008-10-15T04:13:04.070 回答
0

当我们想为 3.1 版的发布做准备时,我们创建一个分支/3.1-Release 分支,并在我们认为合适的时候合并来自主干的各个提交(我们的发布分支通常只接收来自主干的最关键的修复)开发分支)。

通常,此发布分支会经历 alpha 和 beta 测试阶段,并在下一个版本达到阈值时关闭。

您还可以在按下 DVD 或上传下载包后将发布分支标记为已发布,这样您可以在以后需要时轻松地从完全相同的修订版进行重建。

卡尔

于 2008-09-08T09:32:29.977 回答
0

我们已经使用了标签,尽管我们有一个大项目的结构,而不是你概述的许多小项目。

在这种情况下,我们需要标记,例如 1.0.0,还需要分支,例如 1.0。我关心的是混合项目分支和发布分支,例如

branches
    this-project
    that-project
    the-other-project
    1.0
    1.1
    1.2
tags
    1.0.0
    1.0.1
    1.1.0
    1.2.0
    1.2.1
于 2008-09-08T09:35:12.390 回答
0

在我工作的地方,我们有“临时分支”和“发布分支”目录,而不仅仅是“分支”。因此,在您的情况下,项目分支将位于临时分支下,而发布分支(当然是在发布时创建的)将位于发布分支下。

于 2008-10-15T03:55:00.067 回答
0

另一个重要的考虑因素是何时分支以及何时关闭分支——这取决于您的发布计划以及测试和发布需要多长时间。根据我的经验,这需要大量的管理,以确保团队中的每个人都知道计划是什么以及何时使用什么,所有这些都通过在发布 wiki 中记录所有这些得到了帮助。

不完全是您正在寻找的答案,但我认为一旦您对结构进行了排序,您已经有很多好的建议,下一个挑战是让团队了解情况并保持在正轨上。

于 2009-05-15T16:31:50.910 回答
-1

发布与标签相同...您的后备箱中有多个项目吗?在这种情况下,我会在标签内复制相同的文件夹

所以

trunk
     fooapp
         stuff...
     barapp
         stuff...
tags
     fooapp
         1.0.0
         1.0.1
     barapp 
         1.0.0
于 2008-09-08T09:28:18.163 回答