1. 安装 SVN
$ yum install -y subversion
2. 创建一个 SVN 版本库
$ mkdir -p /data/svn/mysvn
创建一个存放项目的目录,此处目录名字不一定非要是 /data/svn/mysvn
$ svnadmin create /data/svn/mysvn/
将这个目录设置为项目目录
$ cd /data/svn/mysvn/
切换到这个目录下
$ ll 查看目录下的目录及文件信息
total 24
drwxr-xr-x 2 root root 4096 Nov 19 22:26 conf
drwxr-sr-x 6 root root 4096 Nov 19 22:26 db
-r--r--r-- 1 root root 2 Nov 19 22:26 format
drwxr-xr-x 2 root root 4096 Nov 19 22:26 hooks
drwxr-xr-x 2 root root 4096 Nov 19 22:26 locks
-rw-r--r-- 1 root root 246 Nov 19 22:26 README.txt
3. 配置 SVN 信息
第二步中可以看到在项目目录下有很多目录及文件,其中 conf
这个目录是版本库中的配置目录,里面存放的是配置文件,这里对 conf
目录下的三个文件的作用做下说明:
$ ll ./conf
-rw-r--r-- 1 root root 1080 Nov 19 22:26 authz
-rw-r--r-- 1 root root 885 Nov 19 22:26 hooks-env.tmpl
-rw-r--r-- 1 root root 309 Nov 19 22:26 passwd
-rw-r--r-- 1 root root 4375 Nov 19 22:26 svnserve.conf
-
authz:这个文件是用来做权限控制的 -
passwd:这个文件是账号密码文件 -
svnserve.conf:这个文件是 SVN 服务综合配置文件
了解到上述文件的作用之后,接下来就开始对配置文件进行编辑配置。首先是 authz 这个用来做权限控制的文件。
$ vim /data/svn/mysvn/conf/authz
如上图,进入配置文件之后,修改为上图所示,关于上述内容总共有5 行内容,接下来我会对这 5 行内容进行一一的说明:
-
[groups]:表示标签,组标签 -
admin = admin,root,test:这里表示设置一个名为 admin 的用户组,而用户组中的用户包括 admin,root,test 这三个; -
[/]:表示库目录的权限 -
@admin = rw:表示赋予 admin 用户组读写权限 -
*=r:表示除了用户组之外,其他非用户组的权限,都只能读
了解并配置了权限文件之后,接下来需要配置的是账号密码文件,账号密码文件是 passwd 这个文件,首先对它进行编辑:
$ vim /data/svn/mysvn/conf/passwd
这个文件的配置比较简单,相信大家也都是一看就懂,就是给 admin 用户组的每个用户都配置一个密码,这里因为演示,所以密码就随便写了一下,比较简单,但是不建议大家这么搞哈。接下来需要配置的是 SVN 服务综合配置文件啦。
$ vim /data/svn/mysvn/conf/svnserve.conf
配置文件内容解释如下:
# 匿名访问的权限 可以是 read、write,none,默认为 read
anon-access = none
# 使授权用户有写权限
auth-access = write
# 密码数据库的路径
password-db = passwd
# 访问控制文件
authz-db = authz
#认证命名空间,SVN会在认证提示里显示,并且作为凭证缓存的关键字
realm = /data/svn/mysvn
[sasl]
4. 启动 SVN 服务
$ svnserve -d -r /data/svn/
$ mkdir -p /data/workspace/mysvn
$ svn checkout svn://127.0.0.1/mysvn --username root --password redhat
可以看到,服务是成功启动,并且在本地生成一个 mysvn 的目录,这个就是项目的总目录
以上是从本地提交文件到 SVN 服务器,其中 root
密码为 /data/svn/myproject/conf/passwd
文件中设置的密码。
本文来源:www.lxlinux.net/setup-svn-server-on-linux.html,若引用不当,请联系修改。