SVN简介
Subversion(SVN)是一个开源的版本控制系统,也就是说Subversion管理着随时间改变的数据,这些数据放置在一个中央资料档案库(repository)中。这个档案很像一个普通的文件服务器,不过它会记住每一次文件的变动。这样你就可以把档案恢复到旧的版本,或是浏览文件的变动历史。
Why use SVN
1.及时了解团队中其他成员的进度。
2.轻松比较不同版本间的细微差别。
3.记录每个文件成长的每步细节,利于成果的复用(reuse)。
4.资料共享,避免以往靠邮件发送文件造成的版本混乱。
5.人人为我,我为人人,所有成员维护的实际是同一个版本库,无需专人维护所有文件的最新版本。
6.协同工作,大大提高团队工作效率,无论团队成员分布天涯还是海角。
SVN的一些概念
- repository(源代码库):源代码统一存放的地方。
- Checkout(提取):当你手上没有源代码的时候,你需要从respository checkout一份。
- Commit(提交):当你已经修改了代码,你就需要Commit到repository。
- Update(更新):当你已经Checkout了一份源代码,Update一下你就可以和Repository上的源代码同步,你手上的代码就会有最新的变更。
SVN工作流程
优于CVS之处
1、原子提交。一次提交不管是单个还是多个文件,都是作为一个整体提交的。在这当中发生的意外例如传输中断,不会引起数据库的不完整和数据损坏。
2、重命名、复制、删除文件等动作都保存在版本历史记录当中。
3、对于二进制文件,使用了节省空间的保存方法。(简单的理解,就是只保存和上一版本不同之处)
4、目录也有版本历史。整个目录树可以被移动或者复制,操作很简单,而且能够保留全部版本记录。
5、分支的开销非常小。
6、优化过的数据库访问,使得一些操作不必访问数据库就可以做到。这样减少了很多不必要的和数据库主机之间的网络流量。
纵向扩展
这里我把客户端比喻成ChargeSystem,服务器端比喻成data base,Checkout相当于select,Commit相当于insert,Update就是update,唯一不同的是data base没有记录的功能。知识与知识息息相关,源于生活。