Linux下的svn服务器的搭建

来源:互联网 发布:汶川地震豆腐渣知乎 编辑:程序博客网 时间:2024/05/01 16:41

Linux下的svn服务器的搭建

1 环境:

服务器放在ubuntu10上,客户端在windows xp。


2 软件包

2.1 客户端:

通过官网下载获得TortoiseSVN-1.6.16.21511-win32-svn-1.6.17.msi

2.2 服务器:

通过apt-get install subversion 进行安装


安装完成以后,要测试是否已经安装成功,则要输入以下命令:

[root@localhost root]#svn --version

若显示如下,安装成功:svn, version 1.6.6 (r40053)
   compiled Jun  5 2011, 14:52:04

Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

 

4 Svn配置

4.1 建立版本库目录

[root@localhost root] #mkdir –p /svn

svn是我自己建立的目录,各人根据具体情况设计名字

4.2 建立一个用户,用与管理这个版本库目录

[root@localhost root] #useradd  -m  -s /bin/bash usersvn

usersvn是建立的用户名,可以根据习惯改

4.3 用建立的用户管理我们刚建的版本库目录

[root@localhost root] #chown –R usersvn.usersvn  /svn

用usersvn来管理我们的版本库目录/svn

4.4 启动服务器

用用户usersvn来管理版本库目录/svn,则须转为usersvn,命令如下:

[root@localhost root] #su usersvn

 启动svn服务

[root@localhost root] #svnserve -d -r /svn/;

-d表示以daemon方式(后台运行)运行
-r/svn/指定根目录是/svn/

 

检查服务器是否启动正常:

[svn_leader@localhost root]$ ps –ef|grep svnserve
如果显示如下,即为启动成功:

lyl  6941   1 0 15:07 ?  00:00:00 svnserve -d --listen-port 9999 -r /svn

 

5 建立版本库

[root@localhost home]# cd /svn

[root@localhost svnrepos]# svnadmin create p1;

P1可以改,在p1目录下会有下面目录:conf  dav  db  format  hooks  locks  README.txt

 

6 配置允许访问test的用户

进入到conf,命令为:

[root@localhost safety]# cd conf

出现三个文件:authz  passwd  svnserve.conf

6.1 修改svnserve.conf

[root@localhost conf]# vi svnserve.conf

出现:

[general]

………………………

# anon-access = read
# auth-access = write

………………………

# password-db = passwd

………………………

# authz-db = authz

内容修改为
:
[general]

………………………

anon-access = none

auth-access = write

………………………

password-db = passwd

………………………

authz-db = authz


(ps:内容是置顶的前面不要留空格,否则客户端连接时会出现svnserve.conf:12:Option expected的错误)

6.2 修改passwd

[root@localhost conf]# vi passwd

文件格式如下:

[users]

<用户1> = <密码1>

<用户2> = <密码2>

 其中,[users]是必须的。下面列出要访问svn的用户,每个用户一行。示例:
[users]

alan = password

king = hello

这个里面的user表示当前test版本库的成员.

6.3 修改authz

[root@localhost conf]# vi authz

用户组格式:

[groups]

<用户组名> = <用户1>,<用户2>

其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。用户必须要在passwd文件里能找到,它是给那个里面的user赋权限.

版本库目录格式:

[/目录]

@<用户组名> = <权限>

<用户名> = <权限>

示例:

[groups]

admin = alan

[/]

@admin = rw

[/svn/p1/WebProject]

king = rw(表示king能够读写/svn/p1/WebProject目录下的所有信息)

[/svn/p1/web]

zp=r(表示zp能够读/svn/p1/web目录下的所有信息)

到此svn服务器的的安装和配置就已经完成了.

停止SVN服务:

killall svnserve

客户端使用

Windows客户端TortoiseSVN的使用


注意地址是svn://服务器ip地址/p1;而不是svn://服务器地址/svn/p1。否则连接的时候会出现No repository found in……这个问题

原创粉丝点击