使用TortoiseSVN,我需要在分支中进行更改,然后将它们与Trunk合并.
我是这个项目的唯一开发人员,所以我知道trunk没有改变.我正在学习SVN,以便最终我的团队可以使用它.
基本上,我希望我的后备箱看起来与分支完全一样.
在pre-svn world中,我只是复制我的分支文件夹中的文件,删除trunk文件夹中的文件,然后将分支复制到trunk.
在TortoiseSVN中,我尝试过"重新整合分支","合并一系列修订"和"合并两棵不同的树".似乎没有什么能改变干线.我也试过在行李箱顶部进行分支.这给了我一个错误,说干线已经存在.
在这一点上,我只是无知地按钮mashing希望有些东西有效.
在你的情况下:
将工作副本切换到Trunk(SVN Switch)
将分支合并到工作副本(SVN Merge)
确保一切仍然编译和工作
提交工作副本(主干)
考虑杀死分支
在团队环境中,我建议您首先合并分支中的主干的最新修改,确保所有内容都编译并运行,然后执行上述步骤(由于您已经测试了更改,这将是微不足道的).
更新
在第5步,我提到杀死分支.这是因为一旦来自特征的分支在主干中,它应该被视为主干的一部分.在这种情况下,应该杀死分支,以便没有人继续工作.如果该功能需要进行重大修改,则应为此创建一个新分支.
除非不再支持特定版本,否则我不会杀死的唯一分支是维护和发布分支.
无论如何,您始终可以访问每个修订版,因此查杀分支仅用于防止其他开发人员在死分支上进行开发.
我想在TortoiseSVN 1.8.5中,Merge | 合并两个不同的树应该工作.将分支/标记合并回主干时,诀窍是From URL是主干,To是标记/分支.奇怪但真实.
资料来源:合并
对于不在工作副本但位于标记/分支中的目录,可能会出现冲突错误.只需接受冲突并重做合并.
首先将工作副本切换到主干.然后进行从分支到主干的合并修订范围.完成此对话框后,差异将在您的主干工作副本中等待更改.您需要提交它们就像在工作副本上手动进行更改一样.
在我的使用中,更典型的是在构建时保持主干运行并旋转分支.因此,我需要做的唯一合并是从trunk中获取错误并将其放在最新的构建分支上并重新释放该分支.对我来说这是最简单的方法,因为你发现合并是最笨拙的.是保持最新的分支和主干检查到我的机器,并从字面上复制文件从主干到分支,并检查两者.