深入浅出剖析SVN

1.1 项目管理中的版本控制问题

  • 通常软件开发由多人协作开发,如果对代码文件、配置文件、文档等没有版本控制,将会出现很多问题:
  1. 备份多个版本,占用磁盘空间大。
  2. 解决代码冲突困难。
  3. 容易引发bug
  4. 难以追溯问题代码的修改人和修改时间
  5. 难以恢复至以前正确的版本
  6. 无法进行权限控制
  7. 项目版本发布困难

1.2 SVN介绍

  •  SVN是SubVersion的简称,是一个*开源的版本控制软件。
  • Subversion将文件存放在中心版本库里,这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况,这样可以借此将数据恢复到以前的版本,并可以查看数据的更改细节。早期版本控制使用的是CVS,后来SVN替代了CVS,随着Android兴起,出现Git版本控制工具。

1.3 SVN使用流程

 深入浅出剖析SVN

  •  问题:怎么让系统允许用户共享信息,而不会让他们因为意外而互相干扰
  • 复制-修改-合并方案(Subversion默认的模式)在这种模型里,每一个客户读取项目配置库建立一个私有工作副本--版本库中文件和目录的本地映射。用户并行工作,修改各自的工作副本,最终,各个私有的复制合并在一起,成为最终的 版本,这种系统通常可以辅助合并操作,但是最终要靠人工去确定正误。
  • 锁定 -修改-解锁方案  在这样的模型里,在一个时间段里配置库的一个文件只允许被一个人修改。此模式不适合软件开发这种工作。