不久前我们使用Microsoft VSS作为我们的版本控制工具,并在每个版本结束后用于创建代码的分支,并将其部署到我们的客户端。
现在我们已经转移到SVN,最近有很多关于标签/分支的讨论,我们是否应该在开发特定版本后标记/分支我们的代码?
SVN实际上为此目的推荐“标签”,但也建议不要对其进行任何更改,那么我们将在哪里为此版本提供令人发指的错误修复?
正在进行的另一件事是创建标记和分支,将标记部署到客户端,并且出现任何错误,修复将分支然后再次标记: - (
其他人做了什么?
答案 0 :(得分:6)
答案 1 :(得分:5)
在Subversion中它们是相同的 - 它们以相同的方式实现,结果是相同的(除了你的repo层次结构)。它们只是对存储库的特定修订版的引用。没有真正的副本。当您开始处理分支(真正意义上的单词)时,您将在新位置使用该资源的新副本。
如果/您需要,您可以随时从标签中创建分支,因此没有理由制作分支和标签。
如果它可以帮助你保持一致,那就继续做吧,但实际上在你开始检查/修改分支之前它没有做任何事情。
(标签/分支都是用cp命令制作的)
答案 2 :(得分:2)
是的,您通常会创建一个与主干并行的维护分支,并标记错误修复版本。
答案 3 :(得分:2)
在代码行的特定修订版本(例如主干)上创建标记,并始终从您的代码中执行发布。 svn中的标签虽然不是由svn本身强制执行的,但它们是快照和参考点。利用这个隐含的概念,只发布一个由您和其他人知道的特定版本对应的标记创建的构建。
使用分支将维护修补程序提交到特定版本(例如,如果需要修补发行版,则从标记创建分支),并通过在发布分支时标记分支来为修补程序执行相同操作。
答案 4 :(得分:0)
发布分支上的标签。
答案 5 :(得分:0)
由于源控制概念在这里仍然很新,特别是SVN,我们单独处理干线。工作得很好,直到我们提交了不应该上线的提交,并且当时部署的人员并不知道这一点。
一旦每个人都对SVN感到满意,我至少可以让另外一个熟悉合并的人,我将设置一个“实时”分支,其中所有已批准的生产提交都可以合并到其中。
标签很好,因为你可以把名字放到开发周期,'beta','alpha','release candidate 1'等等。但是你需要的最重要的是你可以依赖的好的分支用于生产用途。标签只是让确定里程碑更容易。