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

     2023-02-19     109

关键词:

【中文标题】将分支中的更改合并到主干中【英文标题】:Merging changes from a branch into the trunk 【发布时间】:2019-06-11 18:46:24 【问题描述】:

我使用 SVN 进行版本控制,在 Eclipse 中有一个项目。 但是,我在 Windows 10 中使用 TortoiseSVN 作为客户端。

所以我从 Windows 资源管理器提交和更新,这没问题。

所以我开始了一个测试。

我在存储库中有一个文件夹/trunk,在存储库中还有一个文件夹/branches/1.77。 (我用 Tortoise SVN->Branch/Tags 创建的没有问题,我没有切换。)

首先我将我的工作副本指向主干文件夹,创建一个文件versionado.trunk.txt 并提交该更改。

此时一切正常。

我切换到/braches/1.77。在我的工作副本中,我看到 SVN 删除了 versionado.trunk.txt

然后在我的工作副本中创建另一个文件versionado.branch.txt,然后提交。很好,我已经版本化了versionado.branch.txt

在我的工作副本中,我没有 versionado.trunk.txt,因为我在分支上工作。

当我再次切换到主干时,versionado.branch.txt 从我的工作副本中删除,因为我正在主干中工作,并且 SVN 再次创建了versionado.trunk.txt

我的问题是我必须在工作副本中的哪个位置才能从分支 (x.xx) 合并到主干?

我的策略是在主干中工作(日常开发),并且我已经在分支中部署了版本,最终我必须修复一些错误,我应该合并到主干的错误!

我尝试从分支合并到主干(我的工作副本指向主干),但 SVN 告诉我存在树冲突,因为 versionado.trunk.txt 不存在(它在从分支到主干的切换时被删除)。

知道我做错了什么吗?

【问题讨论】:

天哪,我好几年没用过SVN了。当您想将分支合并回主干时,是否需要使用 --reintegrate 标志?你在用吗?是的,您必须将工作副本更新到主干才能将分支合并到其中。如果可能的话,将 SVN 扔出窗外并切换到 Git 或 Mercurial。 @s.m.除非 OP 使用分支完成,否则这是不好的建议。 Reintegrate 用于完成分支,而不是简单地将来自分支的持续更改合并到主干中。由于听起来 OP 正在描述持续支持功能分支,因此我认为这不适用。 【参考方案1】:

我不是 SVN 专家,但也许以下内容会有所帮助:

当您将更改从分支合并到主干时,您通常不会直接编辑存储库。相反,您正在修改主干的工作副本,然后提交更改。使用merge 命令进行合并很有用,因为SVN 有一个名为svn:mergeinfo 的漂亮SVN 属性,它保留了合并项的先前历史记录。所以下面的工作流程应该可以工作:

    switch 到您的主干的工作副本,并确保它是updated。 merge 从分支到主干工作副本的修订。 commit 从分支到主干的变化。

我不确定树冲突,因为你没有足够详细地描述你的目录结构,我还在学习 SVN。如果您对分支和主干结构的MCVE 示例提出新问题,我相信您可以获得更多帮助。


为了更进一步,我发现免费书籍 Version Control with Subversion 中的 "Keeping a Branch in Sync" 部分有助于解释您想要的基本分支工作流程。虽然它描述的是命令行客户端而不是 Tortoise SVN,但概念是相同的。

Tortoise SVN 的文档还提供了一个关于该主题的部分 "Merging",尽管他们建议您返回并阅读 SVN 书中有关分支和合并的整章,如果您想继续提高技能,我同意SVN;即使您不使用命令行客户端,它对 SVN 的进程也非常有启发性。

【讨论】:

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

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

svn合并分支到主干

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

为啥我在 Subversion 中遇到树冲突?

...间】:2010-10-1819:28:00【问题描述】:我的主干有一个功能分支,并且定期将我的主干中的更改合并到我的分支中,一切正常。今天我将分支合并回主干,在创建分支后添加到我的主干的任何文件都被标记为“树冲突”。以后有办... 查看详情

idea合并分支到主干

 将项目切换到master 提交后只是合并到了本地主干,还需要再提交到远程主干。  查看详情

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

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

cvs2svn 和合并信息

...ion。它有一个主干(HEAD),还有几个从主干创建的临时开发分支。在转换之前,我们会将主干中的最新更改合并到所有开发分支中。但它们也会有尚未合并回主干的更改。当我将项目转换为SVN时,它不会有任何合并历史属性。那么... 查看详情

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

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

SVN 分支到主干合并问题

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

如何将没有更改的分支合并到git中的主分支?

】如何将没有更改的分支合并到git中的主分支?【英文标题】:Howtomergethebranchwithnochangesintomasterbranchingit?【发布时间】:2017-04-2521:08:22【问题描述】:对git分支和合并有一个基本的疑问。是否可以合并分支而不对master进行任何更... 查看详情

如何将分支合并到 github 中的 master 中?

】如何将分支合并到github中的master中?【英文标题】:HowdoImergeabranchintoamasteringithub?【发布时间】:2016-02-0321:00:06【问题描述】:我创建了一个repo和github,并将我的文件推送到它。然后让一位同事创建一个分支并进行更改。我想... 查看详情

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

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

在 Subversion 1.5 中将分支重新集成到主干时缺少范围错误消息

】在Subversion1.5中将分支重新集成到主干时缺少范围错误消息【英文标题】:MissingrangeserrormessagewhenreintegratingabranchintotrunkinSubversion1.5【发布时间】:2011-01-2903:47:58【问题描述】:我正在尝试将开发分支重新集成到我的Subversion1.5存... 查看详情

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

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

svn合并分支到主干

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

如何在颠覆中将维护分支中的错误修复合并回主干

】如何在颠覆中将维护分支中的错误修复合并回主干【英文标题】:HowdoImergeabugfixfromamaintenancebranchbacktotrunkinsubversion【发布时间】:2012-09-2014:58:35【问题描述】:在svn的书(http://svnbook.red-bean.com/en/1.7/svn.branchmerge.commonpatterns.html)中... 查看详情

如何利用svn合并代码

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

git合并分支

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

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

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