使用OrtoiseSVN进行分支和合并的最简单方法是什么?
使用TortoiseSVN进行分支和合并的真正简单的“方法”是什么?假设您的工作目录是从主干工作的: 右键单击“根工作文件夹”(此术语始终指Windows资源管理器)并执行使用OrtoiseSVN进行分支和合并的最简单方法是什么?,svn,version-control,tortoisesvn,branch,Svn,Version Control,Tortoisesvn,Branch,使用TortoiseSVN进行分支和合并的真正简单的“方法”是什么?假设您的工作目录是从主干工作的: 右键单击“根工作文件夹”(此术语始终指Windows资源管理器)并执行svn update以将工作文件夹更新到最新的主干 确保你拥有的东西是稳定的 右键单击根工作文件夹并执行svn commit,以确保将任何本地更改提交到主干 右键单击根工作文件夹并执行svn repo浏览器 如果存储库中还没有分支文件夹:右键单击主干文件夹上方的文件夹,执行“创建文件夹”并创建分支文件夹(例如,如果主干为htt
svn update
以将工作文件夹更新到最新的主干
确保你拥有的东西是稳定的
右键单击根工作文件夹并执行svn commit
,以确保将任何本地更改提交到主干
右键单击根工作文件夹并执行svn repo浏览器
如果存储库中还没有分支文件夹:右键单击主干文件夹上方的文件夹,执行“创建文件夹”并创建分支文件夹(例如,如果主干为http://myserver/svn/MyRepository/MyProj/Trunk
,创建http://myserver/svn/MyRepository/MyProj/Branches
)
右键单击主干文件夹并执行复制到:
,然后输入分支机构的新文件夹名称。例如:http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch
。(不要担心这会浪费大量空间…这称为“廉价副本”…除非文件内容发生更改,否则实际上不会复制文件内容)
关闭回购浏览器
右键单击工作文件夹根目录,然后执行:svn开关
,然后选择新分支的文件夹名称(例如,http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch
)。将所有其他内容保留为默认值
现在在你的分支上工作。当您到达里程碑时,右键单击根工作文件夹并执行svn commit
以提交到您的分支。(这在后备箱中看不到)
如果其他人在同一个分支上工作,请定期从根工作文件夹执行svn update
。这将从分支进行更新。(它不会从中继获取任何更新。)
无论其他分支是否在同一分支上工作,您都应该定期合并来自主干的更改,以确保您的分支以后不会太难集成。要执行定期合并:右键单击工作文件夹根目录并执行svn merge
。选择“合并修订范围”。在“要从中合并的URL”下,选择中继(例如,http://myserver/svn/MyRepository/MyProj/Trunk
)。将“修订范围”留空,并将其他内容留空。单击下一步。不处理所有内容,然后单击“合并”。确保一切正常。。。如果没有,请修复它。满意后,从工作根文件夹执行定期的svn更新
,以从分支进行更新(即使只有您在分支上工作,这也是必要的,以满足svn的要求)。然后执行svn commit
将合并的主干更改提交到分支。您可以根据需要定期重复此步骤
分支准备好集成后,最后一次执行上述步骤并进行最终测试。对分支执行最后一次提交
右键单击根工作文件夹并执行另一个svn切换
,这次切换到主干(例如,http://myserver/svn/MyRepository/MyProj/Trunk
)。这将从本质上“撤销”您在分支上所做的所有工作,但不要担心。。。你会找回你的工作的。(它还将报告许多您在分支中未更改的文件的更新,但这些只是“SVN属性”更改…不用担心。)
右键单击您的工作文件夹并执行svn merge
。这一次,选择“重新整合分支”。对于URL,请输入您的分支(例如,http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch
)。别管其他的,点击下一步。不处理所有内容,然后单击“合并”。现在,您已经完成了分支上的所有工作,以及主干上的最新工作
做最后的测试。一切都应该正常,因为这应该是您在分支中上次测试中拥有的同一组文件。右键单击根工作文件夹并执行svn提交
。提交所有内容,甚至是您没有在分支中处理的文件(它们只是有“SVN属性”更改,但提交它们有助于SVN跟踪所有修订)
主干现在有了你所有的分支工作,以及你在分支上工作时在主干中所做的所有工作,并且一切正常。此外,SVN拥有所有文件的完整历史记录,甚至包括您在处理分支时签入的修订
可选:进入回购浏览器,右键单击您的分支文件夹(例如,http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch
)并执行“删除”。这对主干没有影响,您不再需要分支。(即使你真的很偏执,也不要担心,因为如果你真的需要,你甚至可以随时从Repo浏览器中取回已删除的分支。)
请随时发表评论我说的是“最简单”而不是“简单”:)谢谢!您是第一个真正感谢我的人(尽管有投票和收藏夹:),您将分支重新集成到主干中后,就不能再对该分支执行任何工作了,对吗?因为它不会跟踪更改,您将无法再与该分支合并?据我所知,合并不会在同一个分支上工作多次。这确实非常有用