我有一个大项目。
我需要创建一个分支 - 这将是项目的第2个版本,但我还需要保留主干并与分支1并行更改以作为版本1的错误修复。
我需要将主干中的错误修复合并到分支1中,同时在分支中添加新功能。
最终,我需要将所有更改合并回主干并从中制作新标签。
所以我需要版本1的错误修复,版本2的新分支,当然还要合并版本2的错误修复。
我正在使用svn,但svn一直存在问题。 我无法合并任何东西而不会产生冲突。
有人能给我建议吗?
问候
svn checkout .../branches/1.2.x myproduct-1.2.x
svn merge --reintegrate .../branches/1.2.x-r123 myproduct-1.2.x
在重新集成分支之后,应该删除该分支。
在将主干的更改合并到分支后,我发现最好使用2-URL合并将分支合并回主干。据我所知,--reintegrate只是2-URL合并的简化语法,有时会失败(尽管我上次使用重新集成是在1.5版本中)。
svn merge url://trunk@mergedRev url://branch@HEAD .
mergedRev 是你上一次将主干合并到分支时的版本。
如果使用简单的合并指令,从主干合并到分支的所有更改都将被视为需要在合并回去时添加到主干的更改。2-URL 合并中的第一个 URL 告诉 SVN 哪些更改来自主干。这应该大大减少合并期间的冲突。
至于你的存储库结构,我可以建议阅读 ariejan.net 的博客文章(由于我的帖子只允许使用一个链接,因此请参见下面的链接)。
博客文章:ariejan.net/2006/11/24/svn-how-to-structure-your-repository/
首先,我建议您查看 SVN文档,如@SanderRijken所建议的那样,了解功能和发布分支。
但从您的问题听起来,我认为您的主要问题是另一个。也就是说,根本没有合并“有效”(即所有合并都会产生冲突,而您不希望出现这种情况)。因此,也许您可以详细说明您正在做什么确切地(例如,发布用于合并的命令)?