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

您将什么部署到客户端SVN分支或标记,svn,tags,release-management,branch,Svn,Tags,Release Management,Branch,不久前,我们使用Microsoft VSS作为版本控制工具,用于在每个版本结束后创建代码分支,并将其部署到客户机 现在我们已经转向SVN,最近有很多关于标记/分支的讨论,我们是否应该在开发特定版本后标记/分支代码 SVN实际上推荐“标签”用于此目的,但也建议不要对其进行任何进一步的更改,那么我们将在哪里修复此版本中出现的令人发指的错误呢 另一件事是创建标记和分支,将标记部署到客户端,一旦出现任何错误,将对分支进行修复,然后再次标记:-( 其他人做什么?标记发布分支。是的,您通常会创建一个与主干并

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

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

SVN实际上推荐“标签”用于此目的,但也建议不要对其进行任何进一步的更改,那么我们将在哪里修复此版本中出现的令人发指的错误呢

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


其他人做什么?

标记发布分支。

是的,您通常会创建一个与主干并行的维护分支,并从中标记bug修复发布。

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

如果需要,您可以随时使用标记创建分支,因此没有理由创建分支和标记

如果这有助于保持一致性,那么就去做吧,但实际上,在你开始签入/修改分支之前,它什么都做不了


(标记/分支都是用cp命令生成的)

因为源代码管理的概念在这里还是很新的,特别是SVN,我们只在主干上工作。在我们完成了还不应该生效的提交之前,它工作得很好,而当时部署的人并不知道这一点

一旦这里的每个人都熟悉SVN,并且我可以找到至少一个熟悉合并的其他人,我将建立一个“实时”分支,在那里可以合并所有批准的生产提交

标签很好,因为你可以给开发周期命名,“beta”,“alpha”,“release candidate 1”,等等。但是你需要的最重要的是一个好的分支,你可以依赖它来进行生产。标签只是让你更容易确定里程碑

  • 发布时,为其创建一个标记。例如,release-1.1.0
  • 如果您有该版本的错误修复/更改,请首先从该标记创建一个分支,即“稳定分支”,通常以“.x”作为最后版本号命名。例如,稳定-1.1.x
  • 将故障修复/更改从主干合并到稳定分支
  • 将更改提交给稳定分支
  • 一旦您觉得稳定分支上有足够的错误修复/更改来证明新版本的合理性,就从稳定分支创建一个标签,例如release-1.1.1
  • 继续处理主干,将错误修复合并回稳定分支
  • 重复3-6次

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


    使用分支将维护修补程序提交到特定版本(例如,如果需要修补版本,则从标记创建分支)对于你的补丁,也要遵循同样的方法,在你发布的时候给你的分支加上标签。

    要在工作中加上这样一个惯例,标签是永远的,但分支只是为了改变/修复是-这就是它的意图,以及这些词的传统含义。svn书也提出了这一点。我不愿意承认,但它最终会lly让我明白了最好(最简单、最清晰)的方法是先标记,然后从标记(而不是从主干)分支.True删除在某个时候会很好,因为它们可能会累积。@Stefan-您能在第3行详细说明吗。?如果您的主干包含新功能或与release-1.1.0不兼容,会发生什么情况?通过合并,您不是在1.1.0版本中强制这些功能吗?不是在1.1.0标记中,您应该将它们合并到stabilization-1.1.x分支中h、 但当然,只有那些您希望在下一个次要版本(即“release-1.1.1”)中进行的更改@Stefan-谢谢;但是如果您有更新的版本,例如2.1.0,合并会不会将其中的功能放到1.1.1版本中?只有在您专门将这些更改合并到该分支的情况下才会发生。如果您有更新的版本,那么您还(应该)为它和另一个稳定的分支(例如release-2.1.0和stable-2.1.x)添加一个标签然后将更改合并到其中。嗨,Stefan,这是一个附带问题,但是您知道在SVN中标记发布时有哪些CI服务器可以部署代码吗?我使用的是CruiseControl.Net,但我看不到触发因素。谢谢!