linux svn安装和配置

svn概述

众所周知,svn是一种集中式的版本控制工具,是cvs的改进版,那么svn相比cvs的好处在哪里呢?

  • 基于目录的版本控制系统(传统的CVS都是基于单个文件进行版本控制的,而SVN可以随意去除任何一个文件、目录的任何一个历史版本)
  • 原子提交(提交多个文件时,如果一个文件发生冲突,则其他修改都不会被提交)
  • 高效的分支与标签
  • 多种访问方式(svn提供了一个抽象的网络访问层,可以通过不同的写来来对其进行访问)
  • 对二进制文件的支持
  • 平台无关

svn在linux下的安装

Step1:安装必须的包

这里的linux的发行版是centos 6.4,使用yum源进行安装。

  • yum install subversion httpd mod_dav_svn

说明:
subversion (SVN服务器)
httpd mod_dav_svn (用于支持WEB方式管理SVN服务器)

Step2:基本的SVN服务器配置
这里最常用的命令是svnadmin,这个命令除了提供创建Subversion版本库的功能,这个程序使你可以维护这些版本库。
其中在你无网络,无google的情况下,最实用的命令就是svnadmin help

1, 建个svn的根目录,因为项目不止一个

  • mkdir -p /home/svntest/

2,新建一个新的空的版本仓库(subversion repository)

  • svnadmin create /home/svntest/repos

3,初始化版本仓库中的目录

  • svn import  /home/svntest/repos/ file:///home/svntest/repos -m “初始化SVN目录”

4,添加用户
要添加SVN用户非常简单,只需在/home/svn/svntest/repos/conf/passwd文件添加一个形如“username=password”的条目就可以了。为了测试,我添加了如下内容:

3,修改用户访问策略

/home/svntest/repos/conf/authz记录用户的访问策略,这里主要是给上步配置的用户权限,这里的配置见下图。

说明:r表示对该目录有读权限,w表示对该目录有写权限,rw表示对该目录有读写权限。最后一行的* =表示,除了上面设置了权限的用户组之外,其他任何人都被禁止访问本目录。这个很重要,一定要加上!

4,修改svnserve.conf文件,让用户和策略配置升效.
tips:首先检查svnserve.conf文件,看有没有把password-db = passwd前对#去掉,并且要顶格;authz-db = authz同理。否则可能会出现svn: 认证失败

5,经历了上述步骤之后,你就可以启动svn了

  • svnserve -d -r /home/svntest

说明:在这里特别的要注意,/home/svntest是仓库的根目录;另外这时候启动svn的server是svn自己提供的独立服务器,通过svn://来访问。

6,忙乎了这么久,测试一下吧

  • svn co svn://localhost/repos  repos

svn server对http的支持

通过上述步骤之后,只是svn可用,但是还不能通过浏览器http来访问svn。
通过 Http 协议访问版本库是 Subversion 的亮点之一。使用 Http 协议意味着只需要打开浏览器,输入 URL 即可轻松的浏览整个版本库。灵活通常带来复杂性,Http 方式相对于 svnserve 方式来说需要更多的配置。
1,安装apache,即httpd 服务。

2,确认加载一个特殊的模块mod_dav_svn。并测试apache可以正常启动。(以上两步已经通过yum安装过了)

  • #cd /etc/httpd/modules
  • #ls | grep svn
             mod_authz_svn.so
mod_dav_svn.so


3,设置 /etc/httpd/conf.d/subversion.conf

a. module的配置
一定要保证下面的两句话存在于配置文件中,否则无法在如svn的模块,就无法访问svn的仓库了:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

b. 仓库目录配置
刚在上述已经配置了repos这个仓库目录
chown -R apache.apache repos(修改svn目录的属主为apache帐号)
加入以下配置:
<Location /repos>
DAV svn
SVNPath /home/svntest/repos
AuthType Basic
AuthName "password for svn server"
AuthUserFile /home/svntest/repos//conf/pwdfile
Require valid-user
</Location>

c.下面建立可访问用户文件
htpasswd -c /home/svntest/repos/conf/pwdfile yhw
这句是交互式的,会让你输入密码。
d,重起Apache
service httpd restart

4,用浏览器访问http://localhost/repos/,输入你刚才输入的用户名密码,就OK了

Tips:需要注意的是,http和svn方式访问svn的验证是两套不同的验证方式, 通过http访问的账号是Apache http验证的。 通过svn://访问的账号是svn仓库conf目录下passwd指定的。两个是独立的认证方式。

linux svn安装和配置,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。