首页 > 系统 > Linux >

SVN简单概述

2017-04-24

SVN简单概述。SVN是一个跨平台的开源的版本控制系统,SVN管理随时间改变的各种数据,把数据放置在中央档案库中(Repository),SVN会记录、备份每个文件的每一次的修改、更新和变动。

SVN简单概述。SVN是一个跨平台的开源的版本控制系统,SVN管理随时间改变的各种数据,把数据放置在中央档案库中(Repository),SVN会记录、备份每个文件的每一次的修改、更新和变动。

一、SVN相关站点:

Subversion官网:http://subversion.tigris.org http://subversion.apache.org svn客户端:http://torotisesvn.net svn中文网站:http://www.iusesvn.com 中文常见问题解答:http://subversion.apache.org/faq.zh.html 官方手册:http://svnbook.red.bean.com 中英文都有

二、SVN版本控制系统的工作流程

SVN版本控制系统是集中式的数据管理,存在一个中央版本库,所有开发人员本地开发所使用的所有的代码都是来自于这个版本库中,提交代码也要必须提交到这个中央版本库中。 SVN工作流程如下: 1、在中央库上创建或从主干上复制一个分支。 2、冲中央库上check out下这个分支的代码。 3、增加、修改或删除代码文件。 4、commit代码,假设有人在刚刚的分支上提交了代码,你就会被提示代码过期,你必须先更新你的代码然后在提交,如果在更新后代码出现冲突,需要解决冲突后再提交。

三、SVN与分布式的管理系统git比较

1、git没有中央版本库,但为了开发小组的代码共享,通常需要搭建一个远程的git仓库。 2、使用git,本地包含了一个完整的git仓库,从某种程度上说,本地的仓库和远程的仓库在身价上是等价的,没有主从之分。 3、如果你的项目是闭源项目,或者是你喜欢以以往的集中式的管理模式的话,那么在git下也可以向SVN那样工作,只有流程可能会增加一些: 1)、在本地创建一个git库,并将其add到远程的git库中。 2)、在本地库中增加、修改、删除文件,然后commit,当然commit操作是提交到了本地的git库中了。(其实是提交到了本地git库目录下的objects目录中去了)。 3)、将本地git库的分支push到远程git库的分支,如果在这之前远程git库中已经有别人push过,则远程git库将不允许你再次push,你必须先pull,如果有冲突,处理完冲突后,commit到本地库后,再push到远程的git库中。 4、每个开发人员都会有一个本地的git库,可以随时进行commit,而不需要联网,可以随时查看历史版本,当某一个功能开发完成之后,将commit后的内容push到远程git库中。

四、SVN版本库数据格式

SVN存储版本数据有两种格式:BDB(一种事物安全型表类型)、FSFS(一种不需要数据库的存储系统),因为DBD方式在服务器中断时,有可能锁住数据,因此FSFS更安全一些。 DBD: 伯克利DB(Berkeley DB),版本库可以使用一种经过充分测试的后台数据库实现,不能在通过网络共享的文件系统上使用,伯克利DB是Subversion1.2之前缺省的版本库数据格式。 FSFS: 一个专用于Subversion版本库的文件系统后端,可以使用网络文件系统(例如NFS或SMBFS)。是1.2以及之后版本缺省的版本库格式。

五、SVN版本系统逻辑架构原理图:

\

六、SVN集中式版本管理系统优缺点

1、优点: 1)、管理方便,逻辑清晰明确、符合一般人思维习惯。 2)、易于管理,集中式版本管理系统更能保证数据的安全。 3)、代码一致性非常高。 4)、适合开发人数不多的项目使用。 5)、普及度高。 2、缺点: 1)、当无法连接当中央版本库的条件下,无法提交代码,使代码加入到版本控制。 2)、无法查看代码的历史版本,以及版本的变化过程,提交到版本控制系统的代码我们都是默认通过自测可运行的,如果某个模块的代码比较复杂,不能短时间内实现可测试的功能,那么需要等很长的时间才能提交自己的代码,由于代码库几种管理,因此,需要对中央库的存储做备份,这点分布式的版本控制系统要好些。
相关文章
最新文章
热点推荐