Svn 安装:
 
1、环境 服务器端centos 5.4 ,客户端在windows xp上
 
2、软件包
   2.1    subversion-1.3.2-1.rh90.i386.rpm 。可能还会用到其他依赖 组件,在我的配置中要用到:
apr-0.9.5-0.2.i386.rpm 
neon-0.24.7-1.i386.rpm
apr-util-0.9.5-0.1.i386.rpm
 
              这些软件包可以通过 yum install 来安装
 
 2.2 客户端
              TortoiseSVN-1.3.2.5840-svn-1.3.0
 
3 、安装服务器
 
[root@localhost ~]# yum install subversion spr neon apr-util
安装完成以后,要测试是否已经安装成功,则要输入以下命令:
[root@localhost root]#svnserve –version
若显示如下,安装成功:
svnserve, version 1.4.0 (r21228)
compiled Oct 12 2006, 10:18:56
Copyright (C) 2000-2006 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).
The following repository back-end (FS) modules are available:
* fs_fs : Module for working with a plain file (FSFS) repository.
 
1 环境:
服务器放在 redhatAS4.0上,客户端在windows 2000。
2 软件包
2.1 服务器:
subversion-1.3.2-1.rh90.i386.rpm。可能还会用到 其他依赖组件,在我的配置中要用到: apr-0.9.5-0.2.i386.rpm , neon-0.24.7-1.i386.rpm,apr-util-0.9.5-0.1.i386.rpm。
2.2 客户端:
TortoiseSVN-1.3.2.5840-svn-1.3.0
3 安装服务器
[root@localhost root]#rpm –ivh apr-0.9.5-0.2.i386.rpm
[root@localhost root]#rpm –ivh neon-0.24.7-1.i386.rpm
[root@localhost root]#rpm –ivh apr-util-0.9.5-0.1.i386.rpm
[root@localhost root]#rpm –ivh subversion-1.3.2-1.rh90.i386.rpm
安装完成以后,要测试是否已经安装成功,则要输入以下命令:
[root@localhost root]#svnserve –version
若显示如下,安装成功 :
svnserve, version 1.4.0 (r21228)
compiled Oct 12 2006, 10:18:56
Copyright (C) 2000-2006 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/). The following repository back-end (FS) modules are available:
* fs_fs : Module for working with a plain file (FSFS) repository.
 
4 Svn配置
4.1 建立版本库目录
[root@localhost root] #mkdir –p /svn
svn是我自己建立的目录,各人根据具体情况设计名字, svn的配置文件都会存储在这个目录
 
4.2 建立一个用户,用与管理这个版本库目录
[root@localhost root] #useradd -m -s /bin/bash svn
                               -s 指定用户登入后使用的 shell
                               -m 自动建立用户登入的目录
Svn是建立的用户名,可以根据习惯改
 
4.3 用建立的用户管理我们刚建的版本库目录
[root@localhost root] #chown –R svn.svn /svn
用 svn来管理我们的版本库目录/svn
 
4.4 启动服务器
用用户 svn来管理版本库目录/svn,则须转为svn,命令如下:
[root@localhost root] #su svn
启动 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 /home/svn/pl
[root@localhost svnrepos]# svnadmin create .
“.”可以改, “.”在目录下会有下面目录: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           
    anon-access = none| read| write
决定非授权用户的访问级别。 write 访问允许所有的仓库操作。 read 访问允许所有操作,除了提交和修改版本属性。 none 不允许任何访问。默认级别是 read
 
auth-access = write  
auth-access = none| read| write
决定授权用户的访问级别,使用与上面相同的访问级别。默认级别是 write
………………………
password-db = passwd
password-db 指定用户名口令文件名。除非指定绝对路径,否则文件位置为相对conf
目录的相对路径。
 缺省值:passwd
………………………
authz-db = authz
authz-db 指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。
除非指定绝对路径,否则文件位置为相对conf目录的相对路径。
缺省值:authz
 
6.2 修改 passwd
[root@localhost conf]# vi passwd
文件格式如下:
[users]
 
<用户 1> = <密码1>
 
<用户 2> = <密码2>
 其中, [users]是必须的。下面列出要访问svn的用户,每个用户一行。示例:
[users]
user = mima
user1 = mima1
这个里面的 user表示当前test版本库的成员.
 
6.3 修改 authz
[root@localhost conf]# vi authz
用户组格式:
[groups]
 
<用户组名 > = <用户1>,<用户2>
其中, 1个用户组可以包含1个或多个用户,用户间以逗号分隔。用户必须要在passwd文件里能找到,它是给那个里面的user赋权限.
版本库目录格式:
[/目录 ]
 
@<用户组名 > = <权限>
 
<用户名 > = <权限>
 
 
 
Svn目录在 /home/svn/pl下
svnserve –d –r /home/svn/pl    启动 svn
svnadmin create /home/svn/pl
在 svn上创建目录 plan all picture
创建一个组 admin 组员是plan all picture
让组员可以查看任何的目录
plan     对 plan有可读写权限
all      对 all和/有可读写权限
picture 对picture有可写权限
编辑 passwd
[root@localhost /]# vi /home/svn/pl/conf/passwd
[users]
all = 123
plan = 123
picture = 123
编辑authz
[root@localhost /]# vi /home/svn/pl/conf/authz
[groups]
admin = all,plan,picture            定义一个组组名是 admin组员是all,plan,picture
[/]--------------------------------定义一个根目录  赋予all可读写权限给所有的用
all = rw                           户可读权限
*= r
在客户端安装客户端软件
TortoiseSVN-1.3.2.5840-svn-1.3.0           客户端
                              LanguagePack_1.6.7.18415-win32-zh_CN.msi  汉化包
安装需要重启
创建一个svn 目录  位置自己定
点击右键选择 TortoiseSVN 下的settings 把language 更改为中文( 简体)
点击右键选在SVN 检出
在版本库URL :输入SVN 地址  如:svn://192.168.1.128 点击确定
在弹出对话框下输入all 的用户名和密码 因为只设置了all 对根有修改权限
 
进入svn后建立plan all picture这三个目录
创建后点击右键选择提交,在变更目录选择要修改的内容的
选择提交在 svn服务器上就已经创建了这几个文件目录了
 
在写入用户 all、plan、picture各自对目录的权限
 
[/all]-----------------------------定义一个目录 all赋予all可读写权限给组admin
all = rw                            可读权限
@admin = r
 
[/plan]-------------------------- 定义一个目录 plan赋予plan可读写权限给组admin
plan = rw                          可读权限
@admin = r
[/picture]----------------------- 定义一个目录 picture赋予picture可读写权限给组
picture = rw                       admin可读权限                 
@admin = r
这样就可以实现上面描述的效果了
注意:在根目录上创建目录时,不要先写要创建目录的权限。先写上根目录用户的可读写权限,在客户端上创建要创建的目录。然后在回到服务器写相应目录的权限。如果在没创建目录前先把目录创建好,则在根目录里有可读写的用户无法创建这个用户没有写权限的目录。