SVN 分支到主干合并问题

     2023-02-19     185

关键词:

【中文标题】SVN 分支到主干合并问题【英文标题】:SVN Branch To Trunk Merge Issue 【发布时间】:2015-03-28 04:17:27 【问题描述】:

我已经尝试用谷歌搜索手头的问题,但无济于事。我的团队处于一个有趣的境地。

我们的发布分支需要合并回我们的主干。在大约 4 周的提交之后,没有人这样做(我们通常尝试每周进行一次)。然后开发人员将分支合并到主干,但只做了一系列修订,不包括分支的所有修订。

示例:我们在提交 1000 处创建了分支。提交 1000-1400 都发生在第一次合并之前。开发人员合并了提交 1300-1400。一直以来,也有对主干的承诺。

又过了一两个星期,现在我们要提交 1500。我们去进行另一个合并,当然,一切都失败了;我们不需要大量的提交来构建通过(提交 1000-1300)。我们无法完全恢复,因为我们冒着毁掉整个期间对主干所做的所有更改的风险。

我们有哪些选择?这是一个关键的合并,因为我们的主要版本即将发布;我们需要在相对较短的时间内尽可能减少搞砸的机会。

【问题讨论】:

【参考方案1】:

天哪,这听起来很乱……

首先要做的是将所有开发人员从 repo 中踢出几个小时,如果不是几天的话(因为这需要一段时间并且压力很大,希望你周末没有计划......) ,也许也让您的 CI 系统离线一段时间。 (不是必要的,但它会保存一堆损坏的构建)

然后阅读:SVN Manual for dump/load

为您的 repo 文件系统制作一个备份副本。 (以防你犯了错误。)

svnadmin dump REPO_LOCATION_HERE --revision 0:LAST_SAFE_REVISION_NUMBER_HERE > baseline.dumpfile

创建另一个 repo,并“加载”您的转储文件

svnadmin load --force-uuid /opt/subversion/my_new_repo < baseline.dumpfile

现在回到你的旧仓库,

svn log -r LAST_SAFE_REVISION_NUMBER_HERE:HEAD REPO_LOCATION_HERE > reading.txt

通过 reading.txt 并手动写下提交到主干的“有效”且需要保留的内容(几乎是第一次合并之前的所有内容。),然后手动将它们转储/加载到新的使用上述方法repo。

现在重新做第一次合并(这次一定要包含分支中的所有修订。)

这是有趣的部分,从第一次合并到第二次合并后立即执行 svn log --diff。手动使用 linux 'patch' 命令将文件一个接一个地修补到新的 repo 中。对于“狡猾”的 100 次左右的提交,然后 svn 转储/加载剩余的好提交(假设有任何提交。)

最后从你的新仓库中进行一次完整的检查,运行你所有的测试。如果他们通过了,则将旧 repo 移动到新位置,并将新 repo 移动到旧 repo 的位置。并告诉你所有的开发人员做一个干净的结帐,你应该很好。

有一个名为 tkdiff(tkcvs 包的一部分)的简洁工具可以帮助您缩短此过程。一点点/试着看看造成的混乱。 )

如果您在任何阶段搞砸了,请将“旧”回购移到新位置,并将您的回购备份的副本放在旧回购的位置。

祝你好运!!!!。

【讨论】:

我接受了您的回答,因为在更糟糕的情况下,我相信这将是一个不错的选择;但是,我们非常幸运能够恢复合并并将分支中的所有内容重新集成回来,而不会发生任何故障。 8.5 小时和几盒比萨饼,我们很高兴我们的发布:)。感谢您的回答! 那是幸运的,我回答的唯一原因是因为我实际上有一个类似的问题,我个人必须处理,除了我们的问题包括很多文件重命名和重新组织,在破坏由于 dos 和 unix 行尾的不同,分支和空白会发生变化。

将分支合并到主干

】将分支合并到主干【英文标题】:MergeaBranchintoTrunk【发布时间】:2011-11-2516:40:42【问题描述】:我在使用SVNmerge时遇到了一个特殊问题。我想从开发分支合并到主干。我们有多个dev分支同时切断了主干。我正在使用以下命令将... 查看详情

svn分支整个项目合并主干

...选择(合并一个版本范围)点击下一步--合并源选择整个分支项目--将要合并的修改版本范围(选择指定(a)范围)点击下一步--点击合并。   3.如果有冲突先推迟解决冲突,冲突一个一个检查,检查没问题解决冲突。... 查看详情

svn合并分支到主干

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

svn合并分支到主干

http://blog.csdn.net/bbirdsky/article/details/24620155http://www.cnblogs.com/wenlong/archive/2012/05/07/2586853.htmlhttp://www.cnblogs.com/wenlong/archive/2012/05/07/2586853.htmlhttp://blog.csdn.net/b 查看详情

如何利用svn合并代码

...来合并,也是最灵活的一种合并方式,可以是主干合并到分支,或分支合并到主干;主要应用场景是把分支或主干里面的一部分修改同步到主干或分支中去;甚至支持不同库的两个分支,当然这两个分支要求是相同的目录结构。... 查看详情

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

...有不同模块,现在是把相同模块作为主干,不同模块作为分支,如果在主干修改后合并到每个分支上去同步。目前只是在分支上一个个把主干合并过来,能不能直接在主干上一次性分发一样合并到每个分支上那就写个脚本好了,... 查看详情

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

最近接项目要求,要在svn主干上创建分支,用分支来进行程序的bug修改,而主干上进行新功能的开发。分支上的bug修改完,发布后,可以合并到主干上。项目程序可以在主干和分支之间进行切换,来实现主干和分支的同时维护。... 查看详情

实用svn主干trunk自动merge到各个分支branch脚本

实用svn主干trunk自动merge到各个分支branch脚本 大多数使用svn的公司,当发现bug时或新功能时,会从主干trunk直接产生一个分支branch,如叫bug01。接着同事A修改里面的bug,如果测试通过,就提交分支,将分支bug01合并到主干,并解... 查看详情

如果我想将分支合并到主干上,“svn merge --reintegrate”和 svn merge without reintegrate 有啥区别

】如果我想将分支合并到主干上,“svnmerge--reintegrate”和svnmergewithoutreintegrate有啥区别【英文标题】:What\'sthedifferencebetween"svnmerge--reintegrate"andsvnmergewithoutreintegrateifI\'dliketomergeabranchontothetrunk如果我想将分支合并到主干上... 查看详情

将分支中的更改合并到主干中

】将分支中的更改合并到主干中【英文标题】:Mergingchangesfromabranchintothetrunk【发布时间】:2019-06-1118:46:24【问题描述】:我使用SVN进行版本控制,在Eclipse中有一个项目。但是,我在Windows10中使用TortoiseSVN作为客户端。所以我从Wi... 查看详情

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

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

svn分支开发与主干合并(branch&merge)

...stepbystep地演示如何一次完整的branching和merging,包括创建分支、分支开发、分支和主线同步,分支合并到主线的全过程,甚至包括如何在本地创建一个测试用的repository。首先需要安装TortoiseSVN,我安装的版本是:TortoiseSVN1.6.15,Buil... 查看详情

svn分支开发与主干合并(branch&merge)

...stepbystep地演示如何一次完整的branching和merging,包括创建分支、分支开发、分支和主线同步,分支合并到主线的全过程,甚至包括如何在本地创建一个测试用的repo 查看详情

svn合并分支到主干

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

svn打分支和合并操作

1.svn打分支到trunk里,选择Branch/tag....填写分支版本路径到branch里svnup一下,就有1.4.0分支了 2.svn合并 到trunk里,选择Merge。。选择第一个Mergearangofrevisions。两者区别:Mergearangofrevisions。:把分支中的修改合并到主干上来。... 查看详情

eclipsesvn合并小结

合并时候,当前在哪个分支上,哪个分支即为“主干”弱化主干分支的概念。svn原则上并没有主干分子主从的概念。从一个项目衍生(分支)出来的版本,都可以是主,也可以是从。版本之间互相合并原理文件覆盖过来,有冲突的... 查看详情

svn 从主干切换到分支

】svn从主干切换到分支【英文标题】:Svnswitchfromtrunktobranch【发布时间】:2013-01-1708:51:36【问题描述】:我在SVN托管项目的trunk的根文件夹中,并且正在探索建立两个分支。一个分支将是当前(稳定)版本的项目的“快照”,第... 查看详情

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

】合并两个带有分支和标签的SVN存储库【英文标题】:MergetwoSVNrepositorieswithbranches&tags【发布时间】:2014-11-1516:25:11【问题描述】:我有两个SVN存储库,我想将它们合并为一个,它们都有多个分支和标签,我想与所有版本历史... 查看详情