Svn是一个跨平台的开源的版本控制系统。SVN会备份并记录每个文件每一次的修改更新变动。
svn与git的区别
svn版本控制系统是集中式的数据管理,存在一个中央版本库,所有开发人员本地开发所使用的代码都是来自于这个版本库,提交代码也都必须提交到这个中央版本库。
工作流程:
1、在中央库上创建或从主干复制一个分支。
2、从中央库check out 下这个分支的代码。
3、增加自己的代码文件,修改现存的代码或删除代码文件。
4、commit代码,假设有人在刚刚的分支上提交了代码,你就会被提示代码过期。
你得先up你的代码再提交。up代码的时候如果出现 冲突,需要解决好冲突后再进行提交。
缺点:
必须联网才能提交代码并且看到版本更新记录
如果某个模块的代码比较复杂,不能短时间内实现为可测算的功能,那么你需要等很长的时间才能提交自己的的代码,由于代码库集中管理,因此对中央版本库的存储做备份。这点分布式的版本控制系统要好一些。
Svn的备份要备份所有代码数据以及所有更改的版本记录。
git分布式的版本控制
git是由Linux开发的,所以很自然的git和linux文件系统结合的比较紧密。
svn不同的是,开发者本地也包含了一个完整的git仓库,从某种程度上说本地的仓库和远程的仓库在身份上是等价的,没有主从之分。
步骤:
1、你本地创建一个git库,并将其add到远程git库中。
2、你在本地添加或者删除文件,然后commit,当然commit操作都是提交到本地的git库中了。
3、将本地git库的分支push到远程git库的分支,如果这个时候远程git库中已经有别人push过,那么远程git库将不允许你push,这时候你需要先pull,然后如果有冲突,处理好冲突,commit到本地git库后,再push到远程git库中。
SVN档案库数据格式
svn存储版本数据有2中方式:BDB(一种事物安全型表类型)和FSFS(一种不需要数据库的存储系统)
因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全。
BDB:
Berkeley DB,版本库可以使用的一种经过充分测试的后台数据库实现,不能在通过网路共享的文件系统上使用,伯克利DB是Subversion 1.2版本以前的缺省版本库格式
FSFS
一个专门用于Subversion版本库的文件系统后端