先找到svn仓库的目录,比如(/opt/svn/)
创建项目的代码库 : svnadmin create /opt/svn/proj
然后进入到刚创建的目录中 cd /opt/svn/proj
能发现如下目录和文件
进入conf目录 ( cd conf ),发现如下文件,分别进入authz和passwd设置用户权限及密码
vi authz 分别在【group】 和 文件最下方添加如下内容
[ / ] 表示对整个项目根目录的权限设置;@admin就是对上边groups中的用户组定义权限,此处设置为读写权限
保存退出
vi passwd 在【user】 下设置用户密码
保存退出
vi svnserve.conf 设置svn服务相关配置
在【general】中设置如下内容
anon-access = none
auth-access = write
password-db = /opt/svn/proj/conf/passwd
authz-db = /opt/svn/proj/conf/authz
realm = svn5
如下
保存退出
配置钩子程序自动更新线上系统目录,(因为项目的代码库和项目的web目录为两个,要做到同时更新,必须配置同步更新程序)
cd /opt/svn/proj/hooks
cp post-commit.tmpl post-commit
chmod +x post-commit
清除掉post-commit中除了#!/bin/sh之外的所有内容,可以这样echo "#!/bin/sh" >post-commit,或者把所有木有注释的地方加上注释,然后加上如下两行:
export LC_CTYPE=en_US.UTF-8
svn update /opt/website/proj/ --username 'wang' --password 'wang123w'
其中/opt/website/proj/为项目的web目录
然后需要给这个项目分配一个svn的监听端口,先查看已经启动的svn服务 : ps aux | grep svn 查看哪些端口被占用了,然后选一个未被占用的接口即可
可见从3312端口开始到3328端口之间陆续有svn的监听,因此我选择3329端口作为此项目的svn监听端口,为了防止重复,保险起见,搜索一下:
ps aux | grep svn | grep 3329,结果为空。
于是选择此端口设置svn监听,使用如下命令,为了防止服务器重启等因素,同时将此命令放到/etc/rc.local文件中
svnserve -d -r /opt/svn/proj --listen-port 3329
然后到项目的web目录下,执行如下命令:
svn checkout svn://192.168.1.21:3329 --username=king --password=king123 ./
最后,去客户端checkout一下,检查同步更新等是否存在问题