This text is a work in progress—highly subject to change—and may not accurately describe any released version of the Apache™ Subversion® software. Bookmarking or otherwise referring others to this page is probably not such a smart idea. Please visit http://www.svnbook.com/ for stable versions of this book.

小结

这一章我们讲了很多. 首先介绍了标签和分支的概念, 并说明了 Subversion 如何通过 svn copy 复制目录来实现这两个功能. 然后展示 了如何使用 svn merge 把修改从一个分支复制到另一个分支 上, 或回退错误的修改. 再然后介绍了如何使用 svn switch 创建具有混合位置的工作副本. 最后我们讨论了如何管理分支的组织与生存周期.

记住, Subversion 的分支和标签是很廉价的, 所以当你需要时请尽管使用!

为了方便读者, 下面的表格总结了与分支有关的常见操作及其对应的命令.

表 4.1. 分支与合并命令

操作 命令
创建一个分支或标签 svn copy URL1 URL2
把工作副本切换到另一个分支或标签 svn switch URL
将分支与主干同步 svn merge trunkURL; svn commit
查看合并历史或可合并的变更集 svn mergeinfo SOURCE TARGET
将分支合并至主干 svn merge branchURL; svn commit
合并一个特定的修改 svn merge -c REV URL; svn commit
合并一段范围的修改 svn merge -r REV1:REV2 URL; svn commit
从自动合并中拦截某个特定的修改 svn merge -c REV --record-only URL; svn commit
合并预览 svn merge URL --dry-run
放弃合并的结果 svn revert -R .
从历史中恢复文件 svn copy URL@REV localPATH
撤消已提交的修改 svn merge -c -REV URL; svn commit
查看对合并敏感的历史 svn log -g; svn blame -g
从工作副本创建一个标签 svn copy . tagURL
重新安排分支或标签的布局 svn move URL1 URL2
删除分支或标签 svn delete URL