一、线上SVN搭建:
1、安装svn
yum install subversion
创建版本库所在目录
mkdir /var/svn/
版本库初始化
svnadmin create /var/svn/project
2、修改三个配置文件 svnserve.conf 、passwd、authz (去注释后代码前不能有空格)
修改project/svnserve.conf
不允许匿名访问
anon-access = none
允许写入
auth-access = write
需要密码
password-db = passwd
需要访问权限
authz-db = authz
修改authz
目录权限
[/]
设置账户权限
admin=rw
修改passwd
[users]
添加账户=密码
admin=admin
3、启动svn
svnserve -d -r /var/svn
二、自动化部署
1、进入 project/hooks文件夹下 复制一份post-commit.tmpl 命名为post-commit
cp post-commit.tmpl post-commit
2、 清空内容
> post-commit
打开文件编辑内容
vi post-commit
#!/bin/sh
export LANG=zh_CN.UTF-8
/usr/bin/svn update --username **** --password **** /home/wwwroot/www.xxx.com
退出修改权限
chmod 755 post-commit
3、之后一定要先checkout一份到网站目录下
/usr/bin/svn checkout svn://localhost/project /home/wwwroot/www.xxx.com
之后输入对应的账户和密码
就成功了。
常见错误
- 255错误:post-commit没有给执行权限 或者 头部没有执行用sh执行,就是没有
#!/bin/sh
- 提示跳过目录:服务器目录没有checkout代码,记得一定要先checkout一次,才能同步(!,每次新建项目都需要)
- 什么提示也没有:这种情况出现在用工具commit的时候,成功了,但是就是没有同步,建议你到linux下,使用
./post-commit
手动执行看报什么错误。如果乱码,请将文件内编码格式修改为GBK - 提示**** is a direcitory:
/usr/bin/svn
你把这个搞错了,他不是一个目录,是svn的路径