快捷搜索:   nginx

Linux 实战SVN服务器配置与管理

1.1. SVN(SubVersion)介绍及其基本概念
版本控制是信息变化的艺术,它很早就成为了程序员重要的工具,因为程序员经常会花时间做一点小修改然后第二天又把它改回来。但是版本控制的作用不仅在软件开发领域,任何需要频繁信息改变的地方都需要它,这就是Subversion发挥的舞台。

1.1.1SubVersion是什么?Subversion是一个自由/开源版本控制系统,它管理和目录超越时间。一组存放在中心版本库, 这个版本库很像一个普通的文件,只是它记录每一次文件和目录的修改,这便使你可以取得数据以前的版本,从而可以检查所作的更改。从这个方面看, 许多人把版本控制系统当作一种“时间机器”。Subversion可以通过网络访问它的版本库,从而使用户可以在不同的电脑上使用。一定程度上可以说,允 许用户在各自的地方修改同一份数据是促进协作。进展可能非常的迅速,并没有一个所有的改变都会取得效果的通道,由于所有的工作都有历史版本,你不必担心由 于失去某个通道而影响质量,如果存在不正确的改变,只要取消改变。一些版本控制系统也是软件管理(SCM)系统,这种系统经过特定的精巧设计来管理源 代码,有许多关于软件开发的特性—本身理解编程语言、或者提供构建程序的工具。然而,Subversion不是这样一个系统,它是一个通用系统,可以管理 任何类型的文件集,对你这可能是源代码—对别人,可能是一个货物清单或者是数字电影。

1.1.2SubVersion的特性版本化的目录: CVS只记录单个文件的历史,但是Subversion实现了一个可以跟踪目录树更改的“虚拟”版本化文件系统,文件和目录都是有版本的。真实的版本历 史: 因为CVS只记录单个文件的版本,对于拷贝和改名—这些文件经常发生的操作,会改变一个目录的内容—在CVS中并不支持。在CVS里你也不可以用一个完全 不同的文件覆盖原来的同名文件而又不继承原来文件的历史。通过Subversion,你可以对文件或是目录进行增加、拷贝和改名操作,也可以新增一个具有 干净历史的文件。原子提交: 一系列的改动,要么全部提交到版本库,要么一个也不提交,这样可以让用户构建一个所要提交修改的逻辑块,防止部分修改提交到版本库。版本化的元数据: 每一个文件或目录都有一套属性—键和它们的值,你可以建立并存储任何键/值对,属性也是随时间的流逝而纳入版本控制的,很像文件的内容。可选的网络层: Subversion在版本库访问方面有一个抽象概念,利于人们去实现新的网络机制,Subversion可以作为一个扩展模块与Apache结合,这给 了Subversion在稳定性和交互性方面很大的好处,可以直接使用服务器的特性—-认证、授权和传输压缩等等。也有一个轻型的,单独运行的 Subversion服务,这个服务使用自己的协议可以轻松的用SSH封装。一致的数据操作: Subversion表示文件是建立在二进制文件区别算法基础上的,对于文本(可读)和二进制(不可读)文件具备一致的操作方式,两种类型的文件都压缩存 放在版本库中,区别信息是在网络上双向传递的。有效率的分支和标签: 分支与标签的代价不与工程的大小成比例,Subversion建立分支与标签时只是拷贝整个工程,使用了一种类似于硬链接的机制,因而这类操作通常只会花 费很少并且相对固定的时间。 可修改性: Subversion没有历史负担,它由一系列良好的共享C库实现,具有定义良好的API,这使得Subversion非常容易维护,可以轻易的用其他语 言操作。

1.1.3SubVersion的架构

1.2.SVN服务器安装与配置
1.2.1.安装SubVersionSubversion建立在一个可移植层上,叫做APR—Apache Portable Runtime library,APR库提供了许多Subversion在多种操作系统上需要的功能:磁盘访问、内存管理等等。虽然Subversion可以使用 Apache作为服务器程序,这种对APR的依赖并不意味着Apache是必需的组件,APR是可以独立使用的库。这意味着Subversion可以在所 有可运行Apache服务器的平台上工作:Windows、Linux、各种BSD、Mac OS X、Netware以及其他。SubVersion下载地址:1.2.1.1 创建文件仓库
第一步:运行命令:mkdir d:\svn\test
第二步:运行命令:svnadmin create d:/svn/test

1.2.2.安装Apache ServerApache的HTTP服务器是一个Subversion可以利用的“重型”网络服务器,通过一个自定义模块,httpd可以让 Subversion版本库通过WebDAV/DeltaV协议在客户端前可见。ApacheServer下载地址: 注意:只能选用Apache2.X版本

1.2.3.将Apache Server与SubVersion整合首先在Subversion安装目录下的bin子目录找到这样两个文件mod_dav_svn.so和 mod_authz_svn.so,将这两个文件 复制到Apache安装目录下的modules子目录,另外还有四个文件分别是intl3_svn.dll、libdb43.dll、 libeay32.dll、ssleay32.dll,把这四个文件拷贝到Apache的bin目录或者是modules目录。打开Apache的配置文 件conf\httpd.conf,我们需要在该配置文件中通过LoadModule指令来加载Subversion的DAV模块。找到 httpd.conf文件中的如下行: #LoadModule dav_module modules/mod_dav.so将其前面的注释去掉,并在其后追加两行,如下所式:
LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
最后在httpd.conf文件的最末尾做如下配置:
#SVN Server
DAV svn
SVNPath "E:/svn"
#AuthzSVNAccessFile "E:/svn/conf/authz"
#Satisfy Any
Require valid-user
AuthType Basic
AuthName "云南省铁路医疗保险管理信息系统"
AuthUserFile "E:/svn/conf/passwd"

注意:每次对httpd.conf的修改都应重启Apache Server.使之生效。至此,一个简单的SVN服务器就配置好了。你可以使用来访问。但是,她还有很多缺陷,比如我们还需要对她进行用户访问的授权以及数字签名的证书控制等等。接下来,我们将继续介绍如何配置一个高性能、高可靠的专业SVN Server.

1.2.4.用户访问控制及身份验证Apache提供了一个htpasswd工具来管理用户名和口令。接下来我们利用这个工具来添加两个用户。
第一步:运行命令:cd C:\Program Files\Apache Group\Apache2\bin
第二步:运行命令:htpasswd -cm d:\svn\test\conf\password4 sherry

添加第二个用户:运行命令:htpasswd -m d:\svn\test\conf\password4 xiongchun
打开httpd.conf,并修改起末尾的相关配置。如下所示:
#SVN Server
DAV svn
SVNPath "E:/svn"
#AuthzSVNAccessFile "E:/svn/conf/authz"
#Satisfy Any
Require valid-user
AuthType Basic
AuthName "云南省医疗保险管理信息系统"
AuthUserFile "E:/svn/conf/passwd"

1.2.5.使用OpenSSL进行证书管理
1.3.SVN服务器维护与管理高级话题
1.4.SVN客户端常用工具介绍
1.4.1.TortoiseSVN客户端使用说明

顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论