什么是真正简单的“如何”使用TortoiseSVN进行分支和合并?使用TortoiseSVN进行分支和合并的最简单方法是什么?
回答
假设你的工作目录是从树干工作:
的“根工作文件夹”(该术语通常是指Windows资源管理器),右键单击并做svn update
升级你的工作文件夹复制到最新的树干。
确保你有稳定。
右键单击根工作文件夹并执行svn commit
以确保将任何本地更改提交到中继。
右键单击根工作文件夹并执行svn repo-browser
。
如果您在存储库中没有分支文件夹:右键单击trunk文件夹上方的文件夹并执行“创建文件夹”并创建分支文件夹(例如,如果您的主干为http://myserver/svn/MyRepository/MyProj/Trunk
,创建http://myserver/svn/MyRepository/MyProj/Branches
)。
用鼠标右键单击中继文件夹并执行Copy To:
并为您的分支放入新的文件夹名称。例如:http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch
。 (不要担心这会浪费很多空间......这被称为“便宜的拷贝”......它实际上并不复制文件的内容,除非它们改变)。
关闭Repo-browser。
右键单击您的工作文件夹根目录,然后执行:svn switch
并选择新分支的文件夹名称(例如,http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch
)。保持默认状态。
现在在你的分支上工作。当您到达里程碑时,右键单击根工作文件夹并执行svn commit
以提交到您的分支。 (这不会在后备箱中看到)。
如果其他人正在同一分支上工作,请定期从根工作文件夹执行svn update
。这将从分支更新。 (它不会从中继获得任何更新。)
无论其他人是否在同一分支上工作,您应定期合并主干中的更改以确保您的分支不会太难以后期集成。要进行定期合并,请右键单击工作文件夹根目录并执行svn merge
。选择“合并一系列修订”。在“要合并的URL”下,选择中继线(例如,http://myserver/svn/MyRepository/MyProj/Trunk
)。留下修订范围空白,并保留所有其他内容。点击下一步。留下一切,然后点击合并。确保一切仍然正常......如果不是,请修复它。一旦您满意,请从工作根文件夹执行常规svn update
以从分支进行更新(即使您是唯一一个在分支上工作以满足SVN的情况,也是必需的)。然后执行svn commit
将合并树干更改提交给分支。您可以根据需要定期多次重复此步骤。
一旦您的分支准备好进行整合,请最后一次执行上述步骤并进行最终测试。对分支做最后的承诺。
右键单击您的根工作文件夹并执行另一个svn switch
,这次切换到中继(例如,http://myserver/svn/MyRepository/MyProj/Trunk
)。这会产生“撤销”你在分支上所做的所有工作的效果,但不用担心......你将恢复工作。 (它也会报告你的分支没有更改的文件的很多更新,但这些只是“SVN属性”更改...不要担心它们。)
右键单击您的工作文件夹并做svn merge
。这一次,请选择“重新整合分支”。对于URL,请输入您的分支(例如,http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch
)。单独留下剩下的部分并单击下一步。留下一切,然后点击合并。您现在拥有了您在分支机构完成的所有工作,以及干线上的最新工作。
做最后的测试。一切都应该起作用,因为这应该与你在分支上次测试中所使用的一组文件相同。右键单击您的根工作文件夹并执行svn commit
。承诺一切,即使你的分支中没有工作的文件(他们只是有“SVN属性”的变化,但提交它们有助于SVN记录所有修订)。
树干现在拥有您所有的分支机构以及您在分支机构工作时在树干上完成的所有工作,而且一切正常。此外,SVN拥有所有文件的完整历史记录,甚至包括您在分支机构工作时签入的修订版本。
可选:进入Repo浏览器,右键单击您的分支文件夹(例如,http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch
)并执行“删除”。这对干线没有影响,你不需要分支。 (即使你真的是偏执狂,也不要担心,因为如果你真的需要的话,你甚至可以随时从Repo浏览器中取回被删除的分支。)
请随时发表评论!
- 1. KNIME - 进行情绪分析的最简单方法是什么
- 2. 使用Python进行SSH的最简单方法是什么?
- 3. jquery - 合并url参数的最简单方法是什么?
- 4. 在debian(unix)下合并分区最简单的方法是什么?
- 5. 使用isdigit()和isalpha()命令最简单的方法是什么?
- 6. 使用SSH和NFS进行群集并行化的最简单方法是什么?
- 7. 使用Windows Phone 7的WebRequest进行POST的最简单方法是什么?
- 8. 什么是简单合并文件的最快捷方式,什么是分割数组的最快捷方式?
- 9. 使用Web API进行身份验证的最简单方法是什么?
- 10. 检查ZXing支持的最简单方法是什么?
- 11. 将多个集合合并到Java流中的最简单方法是什么?
- 12. 用python执行WHOIS协议最简单的方法是什么?
- 13. 混合8bit 8000Hz PCM_ULAW采样最简单的方法是什么?
- 14. 你如何分支并与TortoiseSVN合并?
- 15. 从C++调用Java方法的最简单方法是什么?
- 16. 什么是从Javascript调用C#方法的最简单方法
- 17. 使用AWS的VSTS Build最简单的方法是什么?
- 18. 使用Intel SSE执行分支的最佳方式是什么?
- 19. 执行复杂分支测试的最简洁方法是什么?
- 20. Git:什么是将工作分支合并到主的最快方法?
- 21. 区分Windows版本的最简单方法是什么?
- 22. SQLite与SAS一起使用最简单的方法是什么?
- 23. 通过ActiveResource使用OAuth最简单的方法是什么?
- 24. 使用wxPython显示JPG最简单的方法是什么?
- 25. 我使用Google API的最简单方法是什么?
- 26. 从.NET使用infiniband最简单的方法是什么?
- 27. 在iPhone OS中使用SQLite3最简单的方法是什么?
- 28. 捕获进程ID并杀死它的最简单方法是什么?
- 29. 什么是“分离/守护进程”Bash脚本的最简单方法?
- 30. 什么是git中的简单合并?
725字很简单吗? – RedFilter 2009-09-22 18:56:16
我说“最简单”不是“简单”:) – JoelFan 2009-09-22 18:58:30
这一直很有帮助,谢谢! – Funka 2009-11-20 22:00:42