1、安装subversion(client and server)
$ yum install subversion
$ yum install mod_dav_svn
安装成功之后使用 svnserve --version 看一下安装的版本
[root@localhost conf]# svnserve --version
svnserve, version 1.6.11 (r934486)
compiled Aug 17 2015, 08:37:43
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/).
The following repository back-end (FS) modules are available:
* fs_base : Module for working with a Berkeley DB repository.
* fs_fs : Module for working with a plain file (FSFS) repository.
Cyrus SASL authentication is available.
svn的版本是1.6.11,是一个老旧的版本了,官网上的版本已经是1.9.4,先不纠结这个问题,先用这个老版本
2、代码库创建
SVN软件安装完成后还需要建立SVN库,我将svn库的路径设在了/var/www/svn/game/test/下面
mkdir -p /var/www/svn/game/test
svnadmin create /var/www/svn/game/test
创建成功之后可以cd到这个目录看看
[root@localhost test]# ll
total 24
drwxr-xr-x. 2 root root 4096 Aug 18 18:13 conf
drwxr-sr-x. 6 root root 4096 Aug 18 03:07 db
-r--r--r--. 1 root root2 Aug 18 01:21 format
drwxr-xr-x. 2 root root 4096 Aug 18 01:21 hooks
drwxr-xr-x. 2 root root 4096 Aug 18 01:21 locks
-rw-r--r--. 1 root root 229 Aug 18 01:21 README.txt
目录结构创建如上,创建成功。
3、配置代码库
cd到/var/www/svn/game/test/conf下面
svnserve.conf(### This file controls the configuration of the svnserve daemon, if you use it to allow access to this repository.)
passwd(### This file is an example password file for svnserve.)
authz(### This file is an example authorization file for svnserve.)vi svnserve.conf,在[general]下面追加或者打开注释
匿名访问的权限,可以是read,write,none,默认为read
anon-access=none
使授权用户有写权限
auth-access=write
密码数据库的路径
password-db=passwd
访问控制文件
authz-db=authz
认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
realm=/opt/svn/repositories
PS:在[general]后面追加,我一开始看教程的时候,直接加在了文件的最后面,发现用户权限怎么都没有生效,查了好久才找到问题所在。
用户密码passwd配置 编辑passwd文件即可,内容很简单,username=passwd
权限控制authz配置,直接附上原文
Its format is identical to that of mod_authz_svn authorization
files.
As shown below each section defines authorizations for the path and
(optional) repository specified by the section name.
The authorizations follow. An authorization line can refer to:
- a single user,
- a group of users defined in a special [groups] section,
- an alias defined in a special [aliases] section,
- all authenticated users, using the '$authenticated' token,
- only anonymous users, using the '$anonymous' token,
- anyone, using the '*' wildcard.
A match can be inverted by prefixing the rule with '~'. Rules can
grant read ('r') access, read-write ('rw') access, or no access
('').
[aliases]
joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average
[groups]
harry_and_sally = harry,sally
harry_sally_and_joe = harry,sally,&joe
[/foo/bar]
harry = rw
&joe = r
* =
[repository:/baz/fuz]
@harry_and_sally = rw
4、相关命令
- 查看svn是否运行 ps -ef|grep svn|grep -v grep
- 停止SVN命令 killall svnserve
- 启动svn版本库 svnserve -d -r 目录名
- 如果目录名不同,svn的链接也不同。
- 如果我使用svnserve -d -r /var/www/svn/game/test
则svn的地址为:svn://ip
如果我使用svnserve -d -r /var/www/svn/
则svn的地址为:svn://ip/game/test
5、后续
这种直接用svnserve运行的