您将什么部署到客户端SVN分支或标记

时间:2009-01-09 20:36:48

标签: svn tags release-management branch

不久前我们使用Microsoft VSS作为我们的版本控制工具,并在每个版本结束后用于创建代码的分支,并将其部署到我们的客户端。

现在我们已经转移到SVN,最近有很多关于标签/分支的讨论,我们是否应该在开发特定版本后标记/分支我们的代码?

SVN实际上为此目的推荐“标签”,但也建议不要对其进行任何更改,那么我们将在哪里为此版本提供令人发指的错误修复?

正在进行的另一件事是创建标记和分支,将标记部署到客户端,并且出现任何错误,修复将分支然后再次标记: - (

其他人做了什么?

6 个答案:

答案 0 :(得分:6)

  1. 发布时,请为其创建标记。例如,版本-1.1.0
  2. 如果您对该版本有错误修正/更改,请先从该标记创建一个分支,即“稳定分支”,通常以“.x”命名为最后一个版本号。例如,stabilization-1.1.x
  3. 将错误修正/更改从主干合并到稳定分支
  4. 将更改提交到稳定分支
  5. 一旦您认为稳定分支上的错误修正/更改足以证明新版本的合理性,请从稳定分支创建标记,例如release-1.1.1
  6. 继续在trunk上工作,将错误修正合并回稳定分支
  7. 重复3-6

答案 1 :(得分:5)

在Subversion中它们是相同的 - 它们以相同的方式实现,结果是相同的(除了你的repo层次结构)。它们只是对存储库的特定修订版的引用。没有真正的副本。当您开始处理分支(真正意义上的单词)时,您将在新位置使用该资源的新副本。

如果/您需要,您可以随时从标签中创建分支,因此没有理由制作分支和标签。

如果它可以帮助你保持一致,那就继续做吧,但实际上在你开始检查/修改分支之前它没有做任何事情。

(标签/分支都是用cp命令制作的)

答案 2 :(得分:2)

是的,您通常会创建一个与主干并行的维护分支,并标记错误修复版本。

答案 3 :(得分:2)

在代码行的特定修订版本(例如主干)上创建标记,并始终从您的代码中执行发布。 svn中的标签虽然不是由svn本身强制执行的,但它们是快照和参考点。利用这个隐含的概念,只发布一个由您和其他人知道的特定版本对应的标记创建的构建。

使用分支将维护修补程序提交到特定版本(例如,如果需要修补发行版,则从标记创建分支),并通过在发布分支时标记分支来为修补程序执行相同操作。

答案 4 :(得分:0)

发布分支上的标签。

答案 5 :(得分:0)

由于源控制概念在这里仍然很新,特别是SVN,我们单独处理干线。工作得很好,直到我们提交了不应该上线的提交,并且当时部署的人员并不知道这一点。

一旦每个人都对SVN感到满意,我至少可以让另外一个熟悉合并的人,我将设置一个“实时”分支,其中所有已批准的生产提交都可以合并到其中。

标签很好,因为你可以把名字放到开发周期,'beta','alpha','release candidate 1'等等。但是你需要的最重要的是你可以依赖的好的分支用于生产用途。标签只是让确定里程碑更容易。