本手册编写于描述 Subversion 1.1 时。如果您正在运行更新版本的 Subversion,我们强烈建议您访问 https://svnbooks.subversion.org.cn/ 并查阅适合您的 Subversion 版本的本书版本。

第 4 章 分支与合并

目录

什么是分支?
使用分支
创建分支
使用分支
分支背后的关键概念
在分支之间复制更改
复制特定更改
合并背后的关键概念
合并的最佳实践
手动跟踪合并
预览合并
合并冲突
注意或忽略祖先
常见用例
将整个分支合并到另一个分支
撤销更改
恢复已删除的项目
常见的分支模式
发布分支
功能分支
切换工作副本
标签
创建简单的标签
创建复杂的标签
分支维护
仓库布局
数据生命周期
总结

分支、标记和合并是几乎所有版本控制系统中常见的概念。如果您不熟悉这些想法,本章将为您提供一个很好的介绍。如果您熟悉,那么希望您会发现 Subversion 如何实现这些想法很有趣。

分支是版本控制的一个基本部分。如果您要让 Subversion 管理您的数据,那么这将是您最终会依赖的功能。本章假定您已经熟悉 Subversion 的基本概念(第 2 章 基本概念)。

什么是分支?

假设您的工作是维护公司部门的一份文档,某种手册。有一天,另一个部门向您索取了相同的手册,但其中有一些部分需要“调整”以适应他们的需求,因为他们做事的方式略有不同。

在这种情况下,您该怎么办?您会做显而易见的事情:制作文档的第二个副本,并开始分别维护这两个副本。当每个部门要求您进行小的更改时,您将这些更改合并到其中一个副本中。

您通常希望对两个副本进行相同的更改。例如,如果您在第一个副本中发现了一个错别字,那么第二个副本中很可能也存在相同的错别字。毕竟,这两个文档几乎相同,它们只是在少数特定方面有所不同。

这就是分支的基本概念——即,一条独立于另一条开发线的开发线,但如果您回溯到足够远的过去,它们仍然共享一个共同的历史。分支总是作为某物的副本开始,然后从那里继续发展,生成自己的历史(参见图 4.1“开发分支”)。

图 4.1 开发分支

Branches of development

Subversion 有命令可以帮助您维护文件和目录的并行分支。它允许您通过复制数据来创建分支,并记住这些副本彼此相关。它还可以帮助您将更改从一个分支复制到另一个分支。最后,它可以使您的工作副本的某些部分反映不同的分支,这样您就可以在日常工作中“混合搭配”不同的开发线。

TortoiseSVN 官方中文版 1.14.7 发布