如题:
一: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
之类的,不知啊,求解。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/98602.html