1、解压并编译
tar -xzvf subversion-1.6.17.tar.gz
cd subversion-1.6.17
./configure --prefix=/usr/local/subversion --without-berkeley-db
make && make install
2、创建仓库目录
mkdir -p /usr/local/subversion/svndata/mraz_repos1
##目录svndata将会是所有仓库的根目录,可以自定义其他路径
##目录mraz_repos1是我要创建的项目仓库目录
3、创建仓库
/usr/local/subversion/bin/svnadmin create /usr/local/subversion/svndata/mraz_repos1
4、配置仓库文件svnserve.conf
vim /usr/local/subversion/svndata/mraz_repos1/conf/svnserve.conf
修改如下,注意!!anon-access前不能有空格!!
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db=auth
5、配置权限控制文件authz
vim /usr/local/subversion/svndata/mraz_repos1/conf/authz
修改如下
[groups]
svngroup = mraz
[mraz_repos1:/]
@svngroup = rw
mraz = rw
上面的配置权限控制文件的配置格式如下:
[groups]
<用户组名> = <用户1>,<用户2>, ……
[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>
其中,方框号内部分可以有多种写法:
/,表示根目录及以下。根目录是svnserve启动时指定的,我们指定为/usr/local/subversion/bin/svnadmin/svndata。这样,/就是表示对全部版本库设置权限。
mraz_repos1:/,表示对版本库1设置权限
mraz_repos2:/aaa,表示对版本库2中的aaa项目设置权限
mraz_repos2:/aaa/bbb,,表示对版本库2中的aaa项目的bbb目录设置权限
权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。
6、配置用户密码文件
[users]
mraz = 123456
7、启动和停止svnserver
启动
/usr/local/subversion/bin/svnserve -d -r /usr/local/subversion/svndata
##注意:这里是/usr/local/subversion/svndata,并非/usr/local/subversion/svndata/mraz_repos1。这是SVN使所有仓库根目录都生效的命令,并非某个仓库。这里必须注意。
停止
ps -ef |grep svn #查找进程号
kill 进程号
8、测试svn checkout
svn checkout svn://xxx.xxx.xxx.xxx/mraz_repos1
提示输入账号密码,输入之前配置的mraz/123456,成功checkout即可