Svn版本管理

1、SVN介绍
1.1 什么是SVN(Subversion)
       SVN(Subversion)是近年来崛起的非常优秀的版本管理工具,与CVS管理工具一样,SVN是一个跨平台开源的版本控制系统。SVN版本管理工具管理着随时间改变的各种数据。这些数据放置在一个中央资料档案库(repository)中,这个档案库很像一个普通的文件服务器或者FTP服务器。与其他服务器不同的是,SVN会备份记录每个文件每一次的修改变动。这样我们就可以把任意一个时间点的档案回复到想要的某一个旧的版本,也可以直接浏览指定文件的更新历史记录。
       为什么会有SVN这样一个项目?

官方解释:为了接管CVS的用户基础,确切的说,我们写了一个新的版本控制系统,他和CVS很相似,但是它修正了CVS所没有解决的问题。详情见官网。

       SVN是一个非常通用的软件管理系统,它常被用来管理程序源码,但是它也可以管理任何类型的文件,如文本、视频,图片等等。

       SVN相关站点:
       Subversion官网:https://subversion.apache.org
       SVN客户端:https://tortoisesvn.net/
       SVN中文网站:http://svndoc.iusesvn.com/
       中文常见问题解答:https://subversion.apache.org/faq.zh.html
       官方手册:http://svnbook.red-bean.com/
截止当前常见的版本管理软件有:VSS、CVS、StarTeam、SVN、GIT。

1.2 SVN与GIT的区别
1.2.1 SVN集中式版本控制系统
       SVN版本控制系统是集中式的数据管理,存在一个中央版本库,所有开发人员本地开发所使用的代码都是来自于这个版本库,提交代码也必须提交到这个中央版本库。
       SVN版本控制系统工作流程如下:
1.在中央版本库上创建或冲主干复制一个分支。
2.从中央版本库上check out 下这个分支的代码。
3.进入自己的分支,进行开发工作。每隔一段时间提交一次代码。
4.在快下班的时候commit代码,假设有人在刚刚的分支上面提交了代码,你就会被提示代码过期,你得先update你的本地代码然后再更新提交。update时如果出现冲突,需要解决好冲突(代码合并)后再进行提交,把自己的分支代码提交到主干。
       优点:
       1.对于某些项目的核心代码或者是一些重要的保密性要求较高的项目,svn比git更适合。
       2.svn支持空目录
       3.svn有更好的windows平台支持
       4.svn可以check out/clone一个子树(sub-tree)
       5.svn支持特权访问控制svn lock,在处理很难合并的文件时非常有用
       6.svn支持二进制文件,更容易处理大文件(不需要把老版本拷来拷去)
       7.学习简单、使用简单
       缺点:
       1.无网的情况下:无法提交代码,无法查看代码的历史版本、无法同步代码
       2.代码要定期做备份(svn的备份要备份所有的代码数据以及所有更改的版本记录)
       3.分支切换缓慢
       4.由于每次提交都会保留一个原始副本,因此SVN的数据库容量会暴增。尤其是在开发人员非常多的情况下。

1.2.2 GIT分布式的版本控制系统
       Git是由Linus开发的,所以很自然的git和linux文件系统结合的非常紧密。以至于windows上你必须使用cygwin才能使其完美的工作。
       那git凭啥叫分布式版本控制系统呢?还是从其工作模式讲起吧。
       git没有中央版本库,但是为了方便开发小组的成员们进行代码共享,我们通常会搭建一个远程的git仓库。和svn不同的是开发者本地也包含一个完整的git仓库,从某种程度上来说本地的仓库和远程的仓库在身份上是等价的,没有主从。
       如果你的项目是一个闭源的项目,或者你习惯于以往的集中式管理,那么在git下你也可以向svn那样工作,只是流程中可能会增加一些步骤。
      1.你在本地创建一个git仓库,并将其add到远程的git仓库中
      2.你在本地增删改文件,然后commit,这里的commit是提交到本地的git仓库中了(其实就是提交到,本地的git目录下的object目录中)
      3. 将本地的git仓库的分支push到远程git的仓库的分支,如果这个时候远程git仓库中已经有别人push过,那么远程的git仓库是不允许你push的,这个时候你要先pull,如果有冲突,处理好冲突,commit到本地git仓库后,再push到远程的git库。
      优点:
      1.比svn方便和快捷的切换分支
      2.书写的代码可以随时提交
      3.丰富的命令行操作和组合
      4.可以一人一个仓库,仓库可以有多个分支

      缺点:

      1.没有一个较好的桌面集成工具
      2.Git在存储二进制文件时效率不高
      3.学习成本高


1.3 SVN服务运行模式与访问方式


1.4 SVN档案库数据格式


1.5 SVN版本系统逻辑架构原理图




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值