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

第 4 章 分支与合并

目录

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

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

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

什么是分支?

假设您负责维护公司某部门的文档,例如某种手册。有一天,另一个部门向您索取相同的手册,但需要“调整”一些部分,因为他们的工作方式略有不同。

在这种情况下,您该怎么做?您会做最明显的事情:您复制一份文档,然后分别维护这两份副本。当每个部门要求您进行小的更改时,您将更改合并到其中一个副本中。

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

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

图 4.1 开发分支

Branches of development

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

TortoiseSVN 官方中文版 1.14.7 发布