02、SVN 基本概念

什么是版本控制系统(VCS)

版本控制系统 (VCS) 是一个软件,帮助软件开发人员团队工作并维持他们完整的工作历史。 下面是版本控制系统(VCS) 的目标

  • 允许开发者们同时工作
  • 不会重写每个人的改变
  • 维持每个版本的全部的历史

VCS 被分成两种

  • 集中版本控制系统 (CVCS) 和
  • 分散或不集中的版本控制系统 (DVCS)

在这个教程里,我们只专注于集中的版本控制系统特别是 Subversion,Subversion 基于集中的版本控制系统,意味着使用统一的服务器让团队协作。

版本控制的术语

让我们先懂得一些在这个教程将用到的术语

  • 仓库: 仓库是任何一个版本系统的核心,它是开发者们保存工作的总部,仓库不止处理文件还有历史记录,它需要访问网络,扮演服务器的角色,版本控制工具扮演客户端的角色,客户端可以连接仓库,那么他们就可以从仓库中存储或者提取。通过保存这些更改,一个客户端的更改可以被其他人检索到,一个客户端可以让其他人的更改作为一个工作副本。
  • 主干:trunk 是主要开发所在的目录,经常被项目开发者们查看。
  • 标签:tags 目录用于储存项目中被命名的快照,标签操作允许给予对仓库中特定版本一个描述和一个难忘的名字。比如,LAST_STABLE_CODE_BEFORE_EMAIL_SUPPORT 比 Repository UUID: 7ceef8cb-3799-40dd-a067-c216ec2e5247 和Revision: 13 更令人难忘。
  • 分支:分支操作用于创建开发的另一条线,当你想把开发进程复制进两个不同的方向是很有用的。比如,当你发布 5.0 版本时,你可能想从 5.0 的 bug 修复中分离出来创建一个开发 6.0 功能的分支。
  • 工作副本:工作副本是仓库的一个快照。这个仓库被所有的成员共享,但人们不直接修改它,相反每个开发者检查这个工作副本,工作副本是一个私人的工作空间,这里开发者可以独立于其他成员做自己的工作。
  • 提交更改:提交是一个保存更改的过程,从私人工作空间到中央服务器。提交后,更改对全部成员可用,通过更新工作副本其他开发者提取这些更改。提交是一个原子操作,要么全部提交成功要么回滚,用户绝不会看到一半完成提交。