使用TortoiseSVN进行分支和合并最简单的方法是什么?

什么是真正简单的“如何”使用TortoiseSVN进行分支和合并?

假设你的工作目录在干线上工作:

右键单击“根工作文件夹”(这个术语总是指Windows资源pipe理器),然后执行svn update将工作文件夹svn update到最新的主干。

确保你有稳定。

右键单击根工作文件夹并执行svn commit以确保任何本地更改都已提交到中继。

右键单击根工作文件夹并执行svn repo-browser

如果您在存储库中没有分支文件夹,请右键单击trunk文件夹上方的文件夹,然后执行“创build文件夹”并创build分支文件夹(例如,如果您的主干为http://myserver/svn/MyRepository/MyProj/Trunk ,创buildhttp://myserver/svn/MyRepository/MyProj/Branches )。

右键单击中继文件夹,然后执行“ Copy To:并放入分支的新文件夹名称。 例如: http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch 。 (不要担心这会浪费很多空间,这被称为“便宜的拷贝”…它实际上并不拷贝文件的内容,除非它们改变)。

closuresRepo浏览器。

右键单击您的工作文件夹根目录,然后执行以下操作: svn switch并select新分支的文件夹名称(例如http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch )。 保留所有其他的默认设置。

现在在你的分支上工作。 当你到里程碑,右键单击根工作文件夹,并执行svn commit提交到您的分支。 (这不会在后备箱中看到)。

如果其他人正在同一个分支上工作,请定期从根工作文件夹进行svn update 。 这将从分支更新。 (它不会从中继获得任何更新。)

无论其他人是否在同一个分支上工作,您应该定期从主干合并更改,以确保您的分支不会太难以后整合。 要进行定期合并:右键单击工作文件夹根目录并执行svn merge 。 select“合并修订版本”。 在“从中合并的URL”下,select中继(例如, http://myserver/svn/MyRepository/MyProj/Trunk )。 将修订范围留空,并保留所有其他内容。 点击下一步。 保持独立,然后单击合并 。 确保一切仍然有效…如果不是,请修复它。 一旦你满意,从工作根文件夹做一个正常的svn update ,从分支更新(这是必要的,即使你是唯一一个在分支上工作,以满足SVN)。 然后执行svn commit合并树干更改到分支。 您可以根据需要定期多次重复此步骤。

一旦您的分支准备好进行整合,最后一步完成上述步骤,并进行最终testing。 对分支做最后的提交。

右键单击你的根工作文件夹,并做另一个svn switch ,这次切换到中继(例如, http://myserver/svn/MyRepository/MyProj/Trunk )。 这样做的效果实质上就是“撤销”你在分支上所做的所有工作,但是不用担心,你将会恢复工作。 (它也会报告你的分支没有改变的文件的很多更新,但这些只是“SVN属性”的变化…不要担心它们。)

右键单击你的工作文件夹,并进行svn merge 。 这一次,select“重新分支”。 对于URL,放入你的分支(例如, http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch )。 保持独立,然后单击下一步。 保持独立,然后单击合并 。 您现在已经完成了您在分支上所做的所有工作,以及主干上的最新工作。

做最后的testing。 一切都应该工作,因为这应该是你在分支上次testing中的一组文件。 右键单击您的根工作文件夹,并执行svn commit 。 提交一切,即使你的分支中没有工作的文件(他们只是“SVN属性”的变化,但提交他们有助于SVNlogging所有修订)。

现在,树干已经完成了所有分支的工作,以及在树枝上工作的所有工作,而且一切正常。 另外,SVN拥有所有文件的完整历史logging,甚至包括您在分支机构工作期间签入的修订版本。

可选:进入Repo浏览器,右键点击分支文件夹(例如, http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch )并执行“删除”。 这对干线没有影响,你不需要分支。 (即使你真的是偏执狂,也不要担心,因为如果你真的需要的话,你甚至可以随时从Repo浏览器中取回被删除的分支。)

请随意发表评论!