1.安装
方式1:yum -y install subversion
方式2:编译安装
2.检查是否安装成功
svnserve --version
3.创建目录
mkdir -p /data0/svn/cai/
4. 创建SVN版本库
svnadmin create /data0/svn/cai/
5.修改配置文件
cd /data0/svn/cai/conf/
(1)passwd
[root@admin conf]# vim passwd
[users]
# harry = harryssecret
# sally = sallyssecret
root=123
back=456
front=789
用户名=密码
以上语句都必须顶格写, 左侧不能留空格, 否则会出错.
note:密码不能包含符号$
(2)authz
[groups]
admin = root,back
[cai:/]
@admin = rw
front = r
将用户添加到组,利用组来设置权限,也可以不需要租,直接在版本库下设置用户,例如
aaa = r ,意思是aaa用户对cai测试库下所有的目录有读权限,而hello和www有读写权限。
如果是自己用,就直接是读写吧。
以上语句都必须顶格写, 左侧不能留空格, 否则会出错.
(3)svnserve.conf
[root@youxia201 conf]# visvnserve.conf 修改svn配置文件
[general]
anon-access = none # 使非授权用户无法访问
auth-access = write # 使授权用户有写权限
password-db = password#密码数据库的路径
authz-db = authz # 访问控制文件
以上语句都必须顶格写, 左侧不能留空格, 否则会出错.
6.启动
svnserve -d -r /data0/svn/
在这里特别的要注意,/data0/svn/是仓库的根目录
7.检查是否工作
ps -ef|grep svn
8.停止svn服务器
kill -s 9 进程号
二.客户端;
安装客户端(tortoiseSVN),在指定目录(例如桌面上)下右击选中checkout,输入svn地址(svn://服务器ip地址/cai),即可以更新代码。
三.自动更新 post-commit
1.cd /data0/svn/www/hooks/
chmod +x post-commit
vi post-commit
#!/bin/bash
#REPOS="$1"
#REV="$2"
export LANG=en_US.UTF-8
SVN=/usr/bin/svn
WEB=/www/cai
${SVN} update ${WEB} --username ****--password ****
chown -R nginx:nginx /www/cai
2.先checkout
cd /www
svn checkout svn://服务器ip地址/cai/
3.排错,直接输入命令看错误提示
/usr/bin/svn update /www/ --username ***--password ***c
另,svn命令:
svn add test.php(添加test.php)
svn add *.php(添加当前目录下所有的php文件)
svn add *(添加当前目录下所有文件)
svn commit -m "add test file for my test"--force-log test.php (提交test.php文件,-m后的"add test file for my test" 可以省略)
svn commit -m "add test file for my test"--force-log * (提交当前目录下所有文件 ,-m后的"add test file for my test" 可以省略)
例如:添加WeEngine-Laster-Offline目录addons下面新建的模块到svn服务器
cd /www/WeEngine-Laster-Offline
svn add addons/*
svn commit -m --force-log addons/*
注:commit同步不成功
1.post-commit文件中的账号密码;2.svn客户端链接服务器的账号密码 3.svn checkout时输入的账号密码,还有是否记住密码(yes/no),尝试选择yes
从以上几个方面考虑问题原因。
设置前端用户只能访问public目录
(2)authz
[groups]
guest=front
[cai:/public]
@guest=rw
此时checkout时,地址:svn://服务器ip地址/cai/public