ubuntu底下搭建svn并添加hooks实现自动更新

AndyYang| 阅读:1027 发表时间:2013-01-15 00:36:00 linux
摘要:但是这样会有一个问题,就是每次提交到服务器,都需要从服务器手动更新,很烦 然后我们需要hooks实现自动更新,在每一次提交的时候。

如题:
一:svn搭建:
1、安装svn

sudo apt-get install subversion
2、创建SVN库:以root身份输入命令svnadmin create /home/svnrepos(/home/svnrepos为库所在目录);

3、修改配置文件
vim /home/svnrepos/conf/svnserve.conf
#设置匿名不可以访问
anon-access = none
#设置认证用户的权限
auth-access = write
#密码数据库的支持
password-db = passwd
vim /home/svnrepos/conf/passwd
[users]
# harry = harryssecret
# sally = sallyssecret
# 用户名 = 密码
andy = 123456
*注意不同的配置路径

4、启动svn
svnserve -d -r /home/svnrepos 
在本地新建一个文件夹,比如demo,然后svn checkout  设置ip,user,password
(当然本地需要转svn客户端)

随便新建一个文件,svn commit

切到服务器,随便新建一个目录,比如/home/demo 然后 
svn checkout svn://127.0.0.1/ /home/demo
cd /home/demo
ls
就可以看到提交的文件了。

但是这样会有一个问题,就是每次提交到服务器,都需要从服务器手动更新,很烦
然后我们需要hooks实现自动更新,在每一次提交的时候。

二、hooks处理:
cd /home/svnrepos/hooks
vim post-commit:
#!/bin/sh
REPOS="$1"
REV="$2"
export LANG=zh_CN.UTF-8
#注意这里设置成自己想要更新的目录,已经用户名和密码
svn update /var/www --username andy --password 123456
#echo `whoami`,$REPOS,$REV >> /home/rollenc/svn_hook_var.txt
#svn update /var/www --username andy --password 123456 2>/home/svn_hook_log.txt
这样就可以自动更新了,每次本地提交的时候。
不过还有一点令我很不爽,就是每次提交过来的时候都是root用户root组,而且权限给的好低,644。

在post-commit加两句:
chown -R www-data:www-data /var/www
chmod 755 -R /var/www
(加在svn update 底下,www-data为apache的用户和组咯)

就这样,处理完了,至于更新时改用户和组你们有更好的方法也欢迎留言哦,谢谢。
还有每次关闭svn的时候我都:
killall svnserve 
是不是太暴力了?有没有类似数据库的命令:
service mysql stop
之类的,不知啊,求解。

本文为AndyYang原创,转载请注明出处!
如果您觉得好,可以打赏作者:
如果您觉得累了,是否想看点美女养养眼:猛戳>>朋友帮
如果您觉得皮了,是否想来点神吐槽:猛戳>>iPhone查询中

已有1条评论

昵称:
邮箱:

  • 最新评论

jack2014-01-27 14:11:13
正好解决了我的困惑!
iPhone查询中 - bbs.ipcxz.com 朋友帮 - www.pengyb.cn iPhone查询中 - bbs.ipcxz.com
反馈
微信订阅号