SVN 是 Subversion 的简称,是一个开源的版本控制系统,CVS的接班人,目前绝大多数公司都是用 SVN 作为版本控制软件
相关概念
SCM: 全称是 Software Configuration Management,即软件配置管理,意思就是对软件的源代码进行控制与管理
为什么需要SVN
SVN 可以用于协作开发、远程开发和版本回退
2. SVN的优缺点优点
- 管理方便,逻辑明确,符合一般人思维习惯
- 代码一致性和安全性非常高
- 适合开发人数不多的项目开服
- 操作简单,入门容易,支持跨平台(Windows、Linux、MacOS)
- 支持版本回退功能(时间机器)
- 属于 C/S 结构的软件,因此使用 SVN 需要分别安装客户端和服务端
缺点
服务器压力大,SVN 数据库容易暴增
如果不能连接到服务器上,基本上不可以工作,看上面第二步,如果服务器不能连接上,就不能提交、还原、对比等等
不适合开源开服(开发人数非常非常多)。但是一般集中式管理的有非常明确的权限管理机制(例如分支访问限制),可以实现分层管理,从而很好的解决开发人数众多的问题
客户端软件: TortoiseSVN 和 VisualSVN
服务端软件: Subversion 和 VisualSVN Server
- 原子提交。一次提交不管是单个还是多个文件,都是作为一个整体提交的。在这当中发生的意外例如传输中断,不会引起数据库的不完整和数据损坏
- 重命名、复制、删除文件等动作都保存在版本历史记录当中
- 对于二进制文件,使用了节省空间的保存方法。(简单的理解,就是只保存和上一版本不同之处)
- 目录也有版本历史。整个目录树可以被移动或者复制,操作很简单,而且能够保留全部版本记录
- 分支的开销非常小
- 优化过的数据库访问,使得一些操作不必访问数据库就可以做到。这样减少了很多不必要的和数据库主机之间的网络流量
svn下载
svn客户端
https://www.visualsvn.com/visualsvn/download/tortoisesvn/
svn服务端
https://www.visualsvn.com/server/download/
从服务器下载项⽬组最新代码。(Checkout)
如果已经Checkout并且有⼈已Commit了代码,你可以更新以获得最新代码。(Update)
进⼊⾃⼰的分⽀,进⾏⼯作,每隔⼀个⼩时向服务器⾃⼰的分⽀提交⼀次代码(很多⼈都有这个习惯。因为有时候⾃⼰对代码改来改去,最后⼜想还原到前⼀个⼩时的版本,或者看看前⼀个⼩时⾃⼰修改了哪些代码,就需要这样做了)。(Commit)
下班时间快到了,把⾃⼰的分⽀合并到服务器主分⽀上,⼀天的⼯作完成,并反映给服务器。(Commit)
注意: 如果两个程序员同时修改了同⼀个⽂件, SVN可以合并这两个程序员的改动,实际上SVN管理源代码是以⾏为单位的,就是说两个程序员只要不是修改了同⼀⾏程序,SVN都会⾃动合并两种修改。如果是同⼀⾏,SVN会提示⽂件Confict, 冲突,需要⼿动确认



