svn是目前比较成熟且使用比较广泛的一种版本控制系统,下面我就以个人经验来讲述一下linux下svn服务器安装和使用的方法:
一、下载svn安装包
http://subversion.tigris.org/downloads/subversion-1.4.5.tar.gz
http://subversion.tigris.org/downloads/subversion-deps-1.4.5.tar.gz
二、编译svn
1、以root用户登录
2、在/usr目录下新建一个目录/usr/svn,命令:mkdir /usr/svn
3、将下载好的两个安装包放到目录/usr/svn下并解压
执行命令:
tar –zxvf subversion-1.4.5.tar.gz
tar –zxvf subversion-deps-1.4.5.tar.gz
4、进入编译阶段
在/usr/svn目录下执行命令:
./configure -prefix=/opt/svn –without-berkeley-db –with-zlib
注意如果最后提示缺少zlib库包时,要先下载zlib包然后解压到任意目录下安装,然后再执行这一步
5、执行命令:make
6、执行命令:make install
7、编译profile
执行命令:gedit /etc/profile
在profile最后加入:
PATH=$PATH:/opt/svn/bin
export PATH
然后保存退出
再执行:source /etc/profile
三、svn测试
执行命令:svnserve –version
可以看到如下显示:
Svnserve, version 1.4.5(r25188)
compiled May 162013,21:33:35
……………………………………………………………………………………………………………………..
表面svn安装成功
四、svn服务器配置
1、建立svn版本库目录
可以建多个:(这里我建一个,不懂可以问我哦,嘿嘿)
mkdir –p /opt/svndata/repos
2、建立svn版本库
Svnadmin create /opt/svndata/repos
3、修改svn版本库配置文件
命令:gedit /opt/svndata/repos/conf/svnserve.conf
内容修改为:
[general]
anon-access = read
auth-access = write
password-db =/opt/svndata/repos/conf/passwd
authz-db = /opt/svndata/repos/conf/authz
realm = repos
注意:把文件中的上面各项前面的#去掉,然后去掉前面的空格,保存
4、配置允许访问的svn用户
命令:gedit /opt/svndata/repos/conf/passwd
文件格式如下:
[users]
<用户1> = <密码1>
<用户2> = <密码2>
其中,[users]是必须的。下面列出要访问svn的用户,每个用户一行。示例:
[users]
hello = world
Hi = baby
5、配置svn的用户访问权限
命令:gedit /opt/svndata/repos/authz
注意:
权限配置文件中出现的用户名必须已在用户配置文件中定义
对权限配置文件的修改立即生效,不必重启svn
用户组格式:
[groups]
<用户组名> = <用户1> ,<用户2>
其中,一个用户组可以包含1个或者多个用户,用户之间用逗号分隔
[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>
注意:
方括号内部分可以有多种写法:
/表示根目录及以下。根目录是svnserve启动时指定的,我们指定/opt/svndata。这样,/就表示对全部版本库设置权限。
权限主体可以是用户组、用户或*,用户组前面加@,*表示全部用户。权限可以是w, r,rw和空,空表示没任何权限。
示例:
[groups]
svngroup = hello
[/]
@svngroup =rw
* = rw
[/]
Hi = rw
五、启动服务器1、建立svn启动的用户(可有可无)
useradd svnOwner
2、设置用户权限
chown –RsvnOwner /opt/svndata
3、启动svn
(如果没有创建svn启动用户,可以直接使用root用户启动服务器)
首先登陆用户svnOwner
命令:login svnOwner
然后:svnserve -d -r /opt/svndata –listen-port 8000
(端口号可有可无,不指定时默认为3690)
4、启动后可以查看一下有木有启动
命令:ps–e |grepsvnserve
5、导入工程
比如我有一个工程(文件夹test)
命令:svn import testfile:///opt/svndata/repose -m “initiad import”