最近突然发现svn提交好慢,要等好几分钟,网上找一个解决方法,并修改之:
修改svn 的 post-commit文件
REPOS="$1" REV="$2" export LC_CTYPE=en_US.UTF-8 #语言支持 SVN_PATH=/usr/bin/svn #指定 svn 路径 LOG_FILE=/home/www/svn.log changed=$(svnlook changed -r $REV $REPOS) # 比较改变的文件 echo `whoami`" "`date "+%Y-%m-%d %H:%M:%S"` >> $LOG_FILE echo "$changed" >> $LOG_FILE
# 下面就是调用php处理文件
n=$‘\n‘ /usr/local/php/bin/php-cgi -q /var/cronShell/svn_post_commit.php "$changed" &
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 |
<?php $files = explode( "\n" , $argv[1]); if
(!is_array($files)) {$files=(array)$files;}; foreach
($files as
$v) { // 取文件名 $f_tem = trim(substr($v, 2)); // 取最顶层目录名 $d_tem = substr($f_tem, 0, strpos($f_tem, ‘/‘ )); // SVN update 对应的文件 $f_name = ‘/usr/local/nginx/html/www/‘
. $f_tem; $cmd = "svn update ‘$f_name‘
--username svn_user --password 123456; //此处的svn用户名密码,是我测试用的 exec($cmd); //php执行svn update 命令 exit(); ?> |
最后,提交代码到svn,看看日志中有没有对应的文件吧
http://blog.sina.com.cn/s/blog_415bd7070100ptb5.html 参考,感谢
原文:http://www.cnblogs.com/flex_fly/p/3638144.html