使用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浏览器中取回被删除的分支。)
请随意发表评论!