又修改了一下,上一个方法有问题
#!/bin/bash ###ubuntu下注意要用bash哦,不然for循环总提示'bad loop....' export LC_CTYPE=en_US.UTF-8 #语言支持 SVN_PATH=/usr/bin/svn TEMP_FILE= /var/svn.log changed=$(svnlook changed -r $REV $REPOS) RMF=`rm -f $TEMP_FILE `
说下基本思路: 因为SVN每次有操作时,会有记录列表,比如: U file1 //更新文件了 D file2 //删除文件了 ....
所以,把SVN操作的文件列表写到文件中,然后用shell取出每一行的文件,最后用svn命令更新之, 速度感觉还不错哈哈!
--------------------------下面的有些问题------------------
最近突然发现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" &
最后,提交代码到svn,看看日志中有没有对应的文件吧 (责任编辑:IT) |