SVN命名约定:存储库,分支,标记

Ste*_*ams 21 svn repository

只是好奇你的命名约定是什么:

存储库名称分支标签

目前,我们在SVN中采用了以下标准,但希望对其进行改进:

  1. 每个项目都有自己的存储库
  2. 每个存储库都有一组目录:标记,分支,主干
  3. 标签是树的不可变副本(release,beta,rc等)
  4. 分支通常是功能分支
  5. Trunk正在进行中(快速添加,错误修复等)

现在,说到这里,我很好奇每个人不仅要处理他们的存储库的命名,还要处理他们的标签和分支.例如,您是否为项目名称使用驼峰案例结构?

那么,如果你的项目是这样的Backyard Baseball for Youngins,你如何处理?

  • backyardBaseballForYoungins
  • backyard_baseball_for_youngins
  • BackyardBaseballForYoungins
  • backyardbaseballforyoungins

这似乎相当微不足道,但这是一个问题.

如果您使用功能分支范例,您如何命名功能分支?功能本身用简单的英语后?某种版本控制方案?也就是说你想为后院棒球应用添加功能,允许用户添加自己的统计数据.你会怎么称呼你的分公司?

  • {repoName} /支链/用户添加统计
  • {repoName} /支链/ userAddStatistics
  • {repoName} /支链/ user_add_statistics

等等

要么:

  • {} repoName /branches/1.1.0.1

如果你去版本路线,你如何关联版本号?似乎功能分支不会从版本控制架构中受益太多,因为1个开发人员可能正在处理"用户添加统计信息"功能,而另一个开发人员可能正在处理"管理添加统计信息"功能.这些分支版本如何命名?他们最好是:

  • {repoName} /branches/1.1.0.1 - 用户添加统计信息
  • {repoName} /branches/1.1.0.2 - admin添加统计信息

一旦它们合并到主干中,主干可能会适当增加?

标签似乎从版本号中受益最多.

话虽如此,您如何将您的项目版本(无论是主干,分支,标签等)与SVN相关联?即,作为开发人员,您如何知道1.1.1具有管理员添加统计信息,以及用户添加统计功能?这些描述和链接如何?标签在每个标签中都有发行说明是有意义的,因为它们是不可变的.

但是,是的,你的SVN政策是什么?

Jon*_* S. 7

我使用trunk,tags,branches模型.

树干:应该始终保持稳定的形式.(不一定是可释放但稳定的,因为没有编译器错误)我通常会进行微小的更改和新功能,这些功能很小,可以在不到一天的时间内完成.如果我要开发需要几天的时间并且签到会使主干处于不稳定状态,我将创建一个分支.

分支: 用于功能开发,可能使主干处于不稳定状态.它还用于"测试"新功能和想法.我确保做一个trunk来分支更新合并,以保持trunk中的最新开发与我的分支同步.

标签:用于我希望快速返回的代码的发行版或稳定版本.通常,我将这些用于模块或应用程序的特定版本(1.00).我尽量不对标签进行任何签到.如果有错误,那么这些更改将在trunk中进行,并将在下一个版本中进行.我做的唯一例外是紧急错误.这意味着标签已经正确QA并且非常稳定.


bob*_*bah 1

我在存储库根目录下有trunkBranchesTags工作区

  • trunk - 不用于避免混淆
  • Branches - 发布分支,一个发布生命周期约为一年,以产品名称缩写和当年命名(LDN_FSHCHPS_REL_2010)
  • 标签- 不可变的发布/补丁标签(使用svn copy完成),从时间戳自动生成(LBL_20100526180134 = 2010-05-26 18:01:34),发布版本是从与 v10.05.26.180134 相同的时间戳生成的,因此它很容易将标签映射到版本
  • 工作区- 功能/个人开发人员的分支,从branches/LDN_FSHCHPS_REL_2010增长以进行新开发,或从tags/LBL_20100526180134增长以进行修补,分支是通过svn copy完成的,反向合并——通过svn merge完成的,重新集成是通过svn merge --reintegrate完成的。工作空间的命名就像 WS_ 一样,由脚本自动生成(类似自动增量)

一切都在一个存储库中,每小时/每天等。备份。为了方便和稳定性,所有步骤(如分支、标签、合并和构建)都已编写脚本(脚本检查存储库一致性)。

仅第二级目录允许分支/合并,并且仅允许完整合并,而不是单个文件/目录(例如分支/LDN_FSHCHPS_REL_2010 --> 工作区/WS_345),以启用自动合并并避免子树合并信息出现问题(并且还可以缓解合并问题发生时的根本原因)