svn-多个项目版本库和自动同步更新post-commit
由于项目测试需求,需要远程服务器上使用svn做版本控制.
需求:
1,项目test1,项目test2,各自独立版本库,各自独立用户权限,便于项目管理
2,同步提交,本地svn提交至版本库后,服务器上的web根目录上的项目同步更新。达到本地update,浏览器访问实时生效
步骤:
1,安装svn 过程略去
2,配置项目
一,创建版本库
创建多个项目的版本库
工作目录
/var/www/
项目1:svnadmin create /var/www/svn/test1
项目2:svnadmin create /var/www/svn/test2
二,修改项目配置
===============================
cd /var/www/svn/test1
目录权限
vi conf/authz
[/]
*=rw
账号密码
vi conf/passwd
user1=123456
主配置
vi conf/svnserve.conf
如果还报127,记得把最下面这句注释或删掉
#mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf
svnserve -d -r /var/www/svn/test1
svnserve -d -r /var/www/svn/test2
正确的是
svnserve -d -r /var/www/svn/
ps -ef|grep svnserve //查看进程是否正常
如果已经有其他进程用命令杀掉kill pid
上面是项目test1的配置,项目test2的配置也和上面大体一致,不在赘述。
4,导入项目
mkdir /var/www/test1
touch test1.txt
midir /var/www/test2
touch test2.txt
svn import /var/www/test1 file:///var/www/svn/test1 -m "导入项目1"
svn import /var/www/test2 file:///var/www/svn/test2 -m "导入项目2"
5,checkout检出
测试一下。把/var/www/test1 和/var/www/test2 删掉
cd /var/www
svn checkout svn://IP/test1
svn checkout svn://IP/test2
看test1,和test2目录果然下载下来了。
然后我到我的windows本地上也checkout一下,地址同样是上面的两个
输入账号密码,也成功下载了文件
我们在test1,test2其中添加提交b.txt,c.txt,
然后到服务器上看/var/www/test1,和 test2中果然已经实时更新出现了。
我的http://test1.aaa.com 和http://test2.aaa.com
分别对应的是/var/www/test1和/var/www/test2
清楚了web的目录指向后,看到的效果自然也就是所谓的实时更新了。
#每分钟更新,并记录日志
#*/1 * * * * /root/svn_update.sh >> /tmp/log/svn_update.log
#每5分钟更新,不记录日志。
*/5 * * * * /root/svn_update.sh
vi svn_update.sh
#!/bin/bash
cd /var/www/test1 && /usr/bin/svn up
cd /var/www/test2 && /usr/bin/svn up
参考:http://blog.csdn.net/honeyjimmy/article/details/24431713
常见错误:http://www.2cto.com/os/201407/322026.html