写点什么

SVN 简介

作者:andy
  • 2022-10-28
    北京
  • 本文字数:1457 字

    阅读完需:约 5 分钟

一、SVN


SVN(Subversion),是一个开放源代码的集中式的版本控制工具,设计目的在于取代 CVS,采用了分支管理系统方式,便于多人共同开发同一个项目,使用共同的资源。SVN 和 CVS 有一个共同的特点,那就是采用了 C/S 模式(客户端/服务器端模式),造成了最大的缺点就是过分依赖于网络,离不开网络。


为什么会出现版本控制系统?

多人开发共同一个项目时,会出现两人以上编写修改同一个功能点或者説是同一个业务需求点,发生互相之间的代码覆盖,爲了解决这一个衝突的问题,才会出现了版本控制工具,衹有版本一致了,才可提交代码。


为什么目的在于取代 CVS?

通俗简单的说,CVS 管理文件混乱,已丢失文件。


二、SVN 服务器


从 2000 年 the Subversion project 项目建立至今,出现了许多的公司自己开发的 SVN 服务器产品(Apache Subversion、VisualSVN)。因此,对于使用哪家公司的产品,根据自身的需要选择。

其中需要注意的是,对于各个不同的 SVN 服务器安装,若工具自动添加可执行命令行工具到环境变量 path 变量上,则忽略安装目录;若没有自动添加,则需要用户记录安装目录,并添加可执行命令的路径(D:\VisualSVN Server\bin)至 path 变量中。

安装完成后,则可以进行服务器的使用。


1、为开发项目创建原代码库目录即仓库目录(mkdir /usr/repository)

2、创建服务器仓库(svnadmin create /usr/repository),创建完成后,生成相应文件

3、在 conf 目录下的三个文件(svnserve.conf、passwd、authz)配置可用的用户名和密码信息

3.1、修改 svnserve.conf 文件,将以下带有单“#”符号去掉,该文件主要目的在于打开密码文件和权限文件的使用,“#”是否需要去掉,应查看“#”后的内容进行判断,必须非常小心。

anon-access = read

auth-access = write

password-db = passwd

authz-db = authz

realm = My First Repository

3.2、修改 passwd 文件,配置可用的用户名和密码。

fuys = fuys0822

3.3、修改 authz 文件,注意配置顺序问题,顺序错误导致无法进行正常的授权,会影响 svn 服务器使用。

[groups]

# harry_and_sally = harry,sally

# harry_sally_and_joe = harry,sally,&joe

[/]

fuys = rw

# [/foo/bar]

# harry = rw

# &joe = r

# * =

fuys = rw

* =

# [repository:/baz/fuz]

# @harry_and_sally = rw

# * = r

* = r

4、配置完成之后,即可以啓动使用服务器。

svnserve -d -r /usr/repository

5、测试 svn 服务器是否可以使用

可以通过直接客户端的查看内容功能,输入配置的 svn 服务器 URL 地址(svn://ip)进行访问,如果可以访问,则 svn 服务器可用,反之。


三、SVN 客户端


SVN 客户端有两种使用方式


(1)直接客户端(TortoiseSVN),相当于文件上传、修改、添加、删除等一系列操作的工具,对于该方式,可以通过网络搜索到直接客户端的使用方法,使用方式非常简单,在此不赘述。对于访问文件的地址(URL),需要注意,本地建立的 SVN 服务器,访问文件的协议为 file(地址即爲 file:///E:/svn)


(2)以插件的方式附加在其他软件工具(eclipse)上使用,svn 插件可以通过网络下载,随后再导入软件工具中。这里没有过多的阐述安装和使用信息,是因爲这些内容是基础,头脑中就应该非常清楚。同时,网络有许多详细的阐述,故不再赘述。


客户端提交到服务器上的文件是如何存储的?


SVN 服务器版本库存储文件有两种格式,一种为 FSFS,一种为 BDB,文件从客户端上传到服务器上后,不再以原有的文件格式存储,而是变爲 SVN 自定义的格式压缩存储在服务器版本库中。


如果服务器存储文件的格式为 FSFS 格式,则这些数据存放在版本库的 db 目录下,该目录下的 revs 和 revprops 文件夹分别存放著每次提交的差异数据和日志信息。


用户头像

andy

关注

还未添加个人签名 2019-11-21 加入

还未添加个人简介

评论

发布
暂无评论
SVN简介_andy_InfoQ写作社区