1. svn安装目录(bin目录)
/usr/bin/svn (这是svn命令目录)
2. 使用“钩子”实现自动同步svn版本库文件到web目录—–实现SVN与WEB同步解决方案
1) 设置WEB服务器根目录为 /home/wwwroot/default 2) checkout一份SVN svn co svn://localhost /home/wwwroot/ 3) 修改权限为WEB用户 chown -R www:www /opt/svn/blog 4) 建立同步脚本 cd /opt/svn/blogs/hooks/
方案一:
vi post-commit 输入以下内容:
#!/bin/sh REPOS="$1" REV="$2" export LANG=en_US.UTF-8 svn update /home/wwwroot/ --username svnname --password svnpassword
方案二:
cp post-commit.tmpl post-commit 重命名 post-commit.tmpl该模板文件
编辑post-commit,在文件最后添加以下内容
#!/bin/sh REPOS="$1" REV="$2" export LANG=en_US.UTF-8 SVN=/usr/bin/svn #这是svn命令目录 WEB=/www/web/ #这是web目录 svn update /home/wwwroot/ --username svnname --password password chown -R www:www $WEB
增加脚本执行权限 chmod +x post-commit 如果不成功 尝试一下方法,在命令后面加上 --no-auth-cache $SVN update $WEB –username test–password test --no-auth-cache 对文件执行chmod +x post-commit操作 最后操作是关闭服务然再打开服务: svn服务的关闭:killall svnserve svn svn服务的开启:svnserve -d -r /opt/svn/hsblogs
可以生成日志来记录版本更新情况 文件内容为:
#!/bin/sh export LANG=zh_CN.UTF-8 REPOS="$1" REV="$2" SVN_PATH=/usr/bin/svn WEB_PATH=/home/wwwroot/ LOG_PATH=/home/wwwlogs/svn_update.log echo "##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH echo `who`,$REPOS,$REV >> $LOG_PATH $SVN_PATH update --username svnname --passwordpassword$WEB_PATH --no-auth-cache >>$LOG_PATH chown -R www:www $WEB_PATH
说明:
1、#!/bin/sh 说明是执行shell命令 。
2、export LANG=zh_CN.UTF-8 是为了解决svn post commit 中文乱码。
3、svn update –username 你版本库的用户名 –password 用户名的密码。
4、chown -R www:www $WEB_PATH 更改文件夹属主,执行shell命令,每次commit完成后都会调用此文件。
原创文章,转载请注明: 转载自HSBLOG
本文链接地址: 实现SVN版本库与WEB目录同步的解决方案
bucuo[害羞]