将分支合并到主干

     2023-02-19     256

关键词:

【中文标题】将分支合并到主干【英文标题】:Merge a Branch into Trunk 【发布时间】:2011-11-25 16:40:42 【问题描述】:

我在使用 SVN merge 时遇到了一个特殊问题。我想从开发分支合并到主干。 我们有多个 dev 分支同时切断了主干。

我正在使用以下命令将其中一个分支合并到主干:

svn merge trunk branch_1

我看到不属于此分支的更改被合并到主干中。 我做错了什么?

SVN 版本:

Subversion 命令行客户端,版本 1.6.16-SlikSvn-tag-1.6.16@1076804-WIN32。

【问题讨论】:

我知道这不是一个答案,但如果您同时有多个活动分支,那么您最好转移到 mercurial 或 git。 Ps:我不是***分子,我已经使用 svn 大约 7 年了;-) 它有什么优势?为什么迁移到 git 或 mercurial 是更好的选择? 因为 git 和 mercurial 对分支有更好的支持。优点:你不会问这样的问题,并且在创建和维护分支时也不会那么头疼(目前我在一个有超过 1000 个分支的项目中工作,在 svn 中使用它们简直就是地狱) 我建议查看Svnmerge.py 并查看this article。 【参考方案1】:

在trunk中做一个svn更新,注意修订号。

从后备箱:

svn merge -r<revision where branch was cut>:<revision of trunk> svn://path/to/branch/branchName

你可以通过 svn log 来检查树枝是从哪里剪下来的

svn log --stop-on-copy

【讨论】:

由于有多个 dev 分支同时处于活动状态,这对我也不起作用,这个命令也从其他分支中提取更改。这可能是 SLik SVN 客户端的问题吗? 虽然这不是不准确的,但有更简单的方法可以与svn 的最新版本(例如 OP 正在使用的版本)合并。 @VanchinathanChandrasekaran,在命令中指定分支名称为svn://path/to/branch/branchName,它应该只从该分支而不是从其他分支中提取更改。如果是这样,我们就有危险了!【参考方案2】:

如果您的工作目录指向主干,那么您应该能够将您的分支与:

svn merge https://HOST/repository/branches/branch_1

一定要在你的树干根目录下发出这个命令

【讨论】:

从 SVN 1.8 开始。这是正确的答案。见subversion.apache.org/docs/release-notes/… @blahdiblah 代码 sn-p 有很多无关信息。研究摘要的阅读量比研究的任何其他部分都要多,这是有原因的。 UX 测试、最小化跳出率等也是如此。原理都是一样的。 在 1.7 中,您可以在没有 --reintegrate 选项的情况下合并,并继续在分支上开发并继续合并。可悲的是,1.8 将强制重新整合,而且似乎没有办法阻止它。这意味着一旦你合并,你就不能在不经历可怕的“keep-alive dance”的情况下使用分支 不要忘记在合并后将主干的工作副本提交回存储库!【参考方案3】:

您的svn merge 语法错误。

您想签出trunk 的工作副本,然后使用svn merge --reintegrate 选项:

$ pwd
/home/user/project-trunk

$ svn update  # (make sure the working copy is up to date)
At revision <N>.

$ svn merge --reintegrate ^/project/branches/branch_1
--- Merging differences between repository URLs into '.':
U    foo.c
U    bar.c
 U   .

$ # build, test, verify, ...

$ svn commit -m "Merge branch_1 back into trunk!"
Sending        .
Sending        foo.c
Sending        bar.c
Transmitting file data ..
Committed revision <N+1>.

有关详细信息,请参阅SVN book chapter on merging。


请注意,在撰写本文时,这是正确的答案(并已被接受),但事情已经发生了变化。看topek的回答,还有http://subversion.apache.org/docs/release-notes/1.8.html#auto-reintegrate

【讨论】:

--reintegrate 选项不是强制性的,分支(在 1.6 中)可以与 any-destination 合并任意次数 真的吗?无需冒险重新合并相同的变更集?您能否提供一个链接来证实这一点。 --reintegrate 确实不是强制性的,但在这种情况下确实推荐。我试图在没有--reintegrate 的情况下做到这一点,并以数百次冲突告终。使用--reintegrate,没有冲突,一切都很好! --reintegrate 选项简单有效,但必须注意“一旦 --reintegrate 合并从分支到主干,该分支不再可用于进一步的工作。它不是能够正确吸收新的主干变化,也不能再次正确地重新集成到主干。”正如你所链接的书所解释的那样。 @daveL,从主干到分支的前向合并对我来说很有意义。但是,我发现了一个高级功能,可以“让重新整合的分支保持活力”(请参阅​​ ***.com/a/10163059/685806),此外,更新的客户端版本会自动应用它。【参考方案4】:

语法错误,应该是

svn merge <what(the range)> <from(your dev branch)> <to(trunk/trunk local copy)>

【讨论】:

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

...978154 问题:开发有了项目主干,再次基础上起了一个分支,开发新的功能;因为业务需要,在上个分支还在测试阶段,还没有和主干合并;  但是新的业务又急着开发,又在上个分支的基础上又打了一个分支   这样... 查看详情

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

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

SVN 分支到主干合并问题

】SVN分支到主干合并问题【英文标题】:SVNBranchToTrunkMergeIssue【发布时间】:2015-03-2804:17:27【问题描述】:我已经尝试用谷歌搜索手头的问题,但无济于事。我的团队处于一个有趣的境地。我们的发布分支需要合并回我们的主干... 查看详情

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

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

git分支代码合并到主干的命令(代码片段)

当在分支进行开发完成、测试通过后,需要将版本发布,或者与主干合并时,应该gitcheckoutmaster---切换主干gitstatus/gitbranch---处在的位置gitmerge$name---需要合并的分支 当分支没有用时,为了保持代码的整洁可以进行删除分支的... 查看详情

svn合并分支到主干

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

git合并分支

1.主干合并分支    Git命令需要在主干下运行,命令执行后,分支的代码同步到了主干。(1)在主干master上合并分支branch (master)gitmergebranch--squash  --squash选项的含义是:不提交、不移动HEAD,因此需要一条... 查看详情

git合并指定分支的commit到主干上

1、先切换分支到mastergitcheckoutmaster2、目前正处于主干上,执行命令,将分支从最后一个commit合并到主干上gitrebase--ontocb4023015fff0d7fe6677bc24bd24deafe7a7d0e3、如果只想合并指定commit,不包含其他commit的话,使用gitcherry-pick  cb40230... 查看详情

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

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

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

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

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

...【发布时间】:2011-01-1313:06:03【问题描述】:发布周期的分支源是常见的源管理方案之一。尽快合并是一个好习惯。因此我们有一个人为因素:分支已关闭,但有人忘记将某些内容合并回主干。问:是否有“一键式”的方式来获... 查看详情

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

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

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

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

git主干分支代码能merge到开发分支代码

一个月前由主干分支master切出一个开发分支fb,master分支一直在开发,但是fb分支没有在开发,一个月后,想重新再fb分支开发,但是没有最新代码,所以想把master分支的一个月修改merge到fb分支上,但是merge过后发现,并不是所有... 查看详情

合并各分支(branches)到主干(trunk)

参考技术A在主干的文件夹中,右击->TortoiseSVN->Merge弹出框点击Next选择合并的对象(URL地址),点击Next,可以尝试Merge(testMerge)点击Merge,合并完成 查看详情

如何利用svn合并代码

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

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

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

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 查看详情