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.

什么是分支

假设你的工作是为公司的某个部门维护文档—比如说一本手册. 一天, 另一个部门也请你替他们维护同一份文档, 但需要根据他们的部门情况, 对手册的 某些部分作一些修改.

对于这种情况你应该怎么处理? 最容易想到的做法是为另一个部门创建一份 文档的副本, 然后单独地对这两份文档进行维护. 每当部门要求对文档进行修改 时, 你就把修改写到相应的文档里.

你应该会经常对两个副本做相同的修改, 比如说你在第一个副本时发现了一 个打字错误, 同样的错误在第二个副本里也应该存在, 毕竟两份文档的大部分内容 都是一样的.

这是分支的基本概念—顾名思义, 它是一条独立存在的开发线, 如果回溯地 足够深, 将会看到它和其他分支共享相同的历史. 一个分支的生命总是开始于复 制操作, 从那儿开始产生自己的历史 (见 图 4.1 “分支示意图”).

图 4.1. 分支示意图

分支示意图

Subversion 提供了很多命令用于帮助用户维护文件与目录的并行分支, 这些 命令允许你通过复制来创建分支, 并记住这些副本之间是有关的. 它们还可以帮助 你把一个分支的修改复制到其他分支上. 最后, 它们可以把工作副本的某些部分 映射到不同的分支上, 这样你就可以在日常工作中 混合搭配 不同的开发线.