我们如何确保维护分支上的错误修复合并回主干?

     2023-04-13     277

关键词:

【中文标题】我们如何确保维护分支上的错误修复合并回主干?【英文标题】:How do we ensure that bug fixes on maintenance branch are merged back to trunk? 【发布时间】:2013-08-22 16:59:30 【问题描述】:

我们经营基于主干的开发。我们最新最好的代码不断地集成到我们的主干中,直到我们准备好将其 UAT 化。在那个阶段,我们从主干为 UAT 创建一个发布候选分支,并且新的开发继续在主干中进行。一旦这个候选版本通过了 UAT,它将被标记并发布到 Live,并从该标记创建一个维护分支,该分支将持续到下一个主要 (UAT'd) 版本。

问题是,如何处理错误修复的合并。如果在 UAT 期间修复了维护分支上的错误,则应将此代码修复合并到主干和候选发布版。如果在 UAT 期间修复了 UAT 错误,则应将此代码修复合并到主干。

我们都知道这一点,但有时会错过合并,并且我们遇到过在 Live 中修复的错误再次出现的情况,因为修复并未应用于所有必需的分支(主干和候选发布) .

我们现在已经开始在我们的提交 cmets(本质上是我们自己可怜的 mans 合并信息)中引用对其他分支的提交以跟踪这一点。

但是我们有什么方法可以绝对确保所有对维护分支的提交都合并到主干和候选发布,并且所有对发布候选的提交都合并到主干?

【问题讨论】:

如果您有一个相当标准的开发周期,那么您应该安排它们之间的合并。通常每两周左右对我的团队来说似乎是最佳时机。 如上所述,我们的过程是将各个提交合并回主干(和发布候选),而不是对分支进行完全合并 -> 让每个开发人员对自己的修复负责。然而,也许在发布前一天冻结维护分支并将完整的分支合并回主干和发布候选是捕获任何遗漏的好方法。我猜颠覆会足够聪明,只能合并被遗忘的内容(假设有好的合并信息)。 正确。我会添加至少另一天的缓冲区(这样您可以在发布前 两天 天合并),这将使您有足够的时间来管理奇怪的(但完全可以解释的)合并更改。 【参考方案1】:

由于 VCS 无法发现错误修复和正在进行的开发之间的区别,简短的回答是没有办法 100% 确定,一个为开发人员提供检查列表的良好跟踪系统可能会有所帮助,但即使威胁要开枪或枪杀罪犯也不能确保它不会发生。 实际上这样做可以减少屡犯者!

【讨论】:

嗯,维护分支和候选发布版本上的每个提交都必须合并到主干,所以我们不必区分提交。之前已经发出过通讯,我们已经澄清并再次发送(备份了维基页面),但我们仍然遇到问题 -> 有些人忘记了。【参考方案2】:

对于长期工作

将维护分支的所有提交合并到主干和候选发布 将发布候选的所有提交合并到主干

您可以使用(显然!!!)特殊的提交后挂钩

先决条件

主干 + RC 分支的工作副本(在 SVN 服务器主机上)

另外,不是强制性的(见下文)

预提交钩子,它可以阻止|通过自定义用户列表的提交,而无需更改钩子的代码

业务逻辑(TBT!!!)

如果提交影响任何受监控的分支(使用svnlook dirs-changed 执行此任务):需要合并到(已知)目标。此时您可以拥有未来强制合并的目标列表 尝试合并 svn up WC 目标 尝试合并:svn merge <options> --dry-run 如果测试合并没有冲突 - 在 WC 中执行合并并提交合并集,返回退出代码“OK”并完成挂钩 如果发现合并冲突,因此必须在合并中进行人工干预,您可以选择任何路径: 通知提交者有关问题和他等待的下一个操作(合并与解决冲突) 通知提交者有关问题和他的下一个等待操作,并以某种方式将提交者的用户名放入禁止列表中以进行预提交挂钩(禁止未来提交,除了手动合并集到目标中) 如果提交从被阻止的用户合并到 TARGET(s) - 将用户从禁令中删除

【讨论】:

SVN 分支到主干合并问题

...头的问题,但无济于事。我的团队处于一个有趣的境地。我们的发布分支需要合并回我们的主干。在大约4周的提交之后,没有人这样做(我们通常尝试每周进行一次)。然后开发人员将分支合并到主干,但只做了一系列修订,... 查看详情

如何将错误修复分支合并到主分支?

】如何将错误修复分支合并到主分支?【英文标题】:HowtomergebugfixbranchtoMasterbranch?【发布时间】:2019-05-2322:21:34【问题描述】:对于新功能(增强),开发人员从主分支分支代码并在代码审查后合并。在发布日期,主分支被冻... 查看详情

Subversion:如何找到所有未合并到主干的修订?

...是常见的源管理方案之一。尽快合并是一个好习惯。因此我们有一个人为因素:分支已关闭,但有人忘记将某些内容合并回主干。问:是否有“一键式”的方式来获取所有未从分支X合并到主干的修订号 查看详情

SVN - 无法将分支合并回主干 - 许多树冲突

】SVN-无法将分支合并回主干-许多树冲突【英文标题】:SVN-unabletomergebranchbackintotrunk-numeroustree-conflicts【发布时间】:2010-11-0318:24:41【问题描述】:我有一个我认为很简单的场景-使用TortoiseSVN:1)我创建了一个应用程序的分支(B2)... 查看详情

svn如何把主干上的修改合并到分支上来

情况是这样的,现在公司项目分布到全国,各省有相同模块,有不同模块,现在是把相同模块作为主干,不同模块作为分支,如果在主干修改后合并到每个分支上去同步。目前只是在分支上一个个把主干合并过来,能不能直接在... 查看详情

svn合并分支到主干

分支库中单元测试通过的源代码要合并到主干,例如有一个开发中的代码branches->dev需要合并到主干trunk。步骤:第一个步骤:在本地副本上进行操作,选择主干上的源代码文件,右键选择tortoiseSVN菜单,... 查看详情

tortoisesvn分支创建与合并

前提准备:确保本地WorkCopy和服务器上的版本一致。(所有代码都提交到SVN,并update一次)1 从主干创建分支代码在本地WorkCopy 选中项目文件夹,鼠标右键选择TortoiseSVN→Branch/Tag....弹出如下图,在ToPath处填写分支代码保存... 查看详情

eclipse下svn的创建分支/合并/切换使用

...以在主干和分支之间进行切换,来实现主干和分支的同时维护。1.创建分支创建分支实际上就是将程序copy一份到指定的分支目录,如下图示:在项目名称上点击右键,弹出菜单,选择"Team",再选择"Branch/Tag",弹出下面的页面:&nb... 查看详情

如何将分支合并回主分支并避免树冲突 - TortoiseSVN

】如何将分支合并回主分支并避免树冲突-TortoiseSVN【英文标题】:Howtomergebranchbacktomainbranchandavoidtreeconflicts-TortoiseSVN【发布时间】:2014-11-2702:31:29【问题描述】:我使用TortoiseSVN在SVN中管理源文件。我添加了文件并将它们提交到... 查看详情

合并两个带有分支和标签的 SVN 存储库

...它们都有多个分支和标签,我想与所有版本历史记录一起维护。Repo1主干HEAD与Repo2主干修订版2相同,并且Repo1和Repo2的所有分支和标签都已分支并已合并回其自己的存储库主干。由于 查看详情

git分支管理

分支操作功能就是复制一个副本进行修改,修改过程中不会影响主干的运行。实际上就是一个指针,指向本地库。master是主干命令:gitbranch+分支名创建分支命令:gitbranch-v查看有哪些分支命令:gitcheckout+分支名切换分支命令:git... 查看详情

idea如何在git上将分支代码合并到主干

1.首先将idea中的代码分支切换到master分支,可以看到我们在dev上提交的代码在master上是没有的   2.如图所示,在remotebranch上选择分支,点击后面的三角图标,展开之后选择Mergeintocurrent   3.合并过程中可能会... 查看详情

将分支合并到主干

...rge时遇到了一个特殊问题。我想从开发分支合并到主干。我们有多个dev分支同时切断了主干。我正在使用以下命令将其中一个分支合并到主干:svnmergetrunkbranch_1我看到不属于此分支的更改被合并到主干中。我做错了什么?SVN版本... 查看详情

svn(tortoisesvn)详细教程--创建分支合并相互操作

...,由于需求的变更,需要增加新的需求,但是我们主干上还要继续往下开发,在此我们可以新建一个分支,来做增加新的需求那一块,主干上继续开发,等分支上代码没有问题的时候,再合并到主... 查看详情

svn合并分支到主干

分支库中单元测试通过的源代码要合并到主干,例如有一个开发中的代码branches->dev需要合并到主干trunk。步骤:第一个步骤:在本地副本上进行操作,选择主干上的源代码文件,右键选择tortoiseSVN菜单,... 查看详情

svn将主干的代码合并到分支上

...发,又在上个分支的基础上又打了一个分支   这样我们会遇到一个问题当合并代码的时候会出现很多的冲突,我们需要在主干上修 查看详情

如何修复错误合并中的历史记录

...方案。我基本上有2个分支,master和bugfix。错误修复是在我们完成发布时从master派生的。每次我们在bugfix中修复某些内容并进行bugfix发布时,我们都需要将 查看详情

使用 TortoiseSVN 如何将更改从主干合并到分支,反之亦然?

】使用TortoiseSVN如何将更改从主干合并到分支,反之亦然?【英文标题】:UsingTortoiseSVNhowdoImergechangesfromthetrunktoabranchandviceversa?【发布时间】:2010-09-2221:13:52【问题描述】:我一直在阅读使用优秀且免费的VersionControlwithSubversion书... 查看详情