SVN Commit 慢的问题
来源:互联网 发布:淘宝怎么看我的店铺 编辑:程序博客网 时间:2024/05/16 08:17
问题描述:
使用小乌龟或者svn命令提交时,文件实际已经提交完毕,但需要等待很长的时间才提示提交完毕(几秒到十几秒不等,正常情况只要文件上传完了就提示提交完毕)。
问题分析:
我的项目大概100多M,Android项目、iOS项目、UI文档合计1G左右,当时就怀疑是钩子的原因,导致commit速度下降。
解决办法:
思路:每次提交时把需要修改的文件写入日志文件中,然后通过PHP读取日志文件 每次只用更新提交的文件,而不用更新整个项目
直接上代码
post-commit
#!/bin/sh
export LANG=en_US.UTF-8
REPOS="$1"
REV="$2"
SVN=/usr/bin/svn
WEB=/Data/wwwroot
LOG_FILE=/Data/logs/svn.log
changed=$(svnlook changed -r $REV $REPOS) # 比较改变的文件
echo "$changed" >> $LOG_FILE
php svn_post_commit.php #执行php脚本1234567891012345678910
php代码
<?php
//读取日志文件
$f = file_get_contents('/Data/logs/svn.log');
$files = explode("\n", $f);
if (!is_array($files)) {
$files=(array)$files;
};
foreach ($files as $v) {
// 取文件名
$f_tem = trim(substr($v, 2));
//由于只需要更新php代码,这里只拿到服务端代码 更新到www目录
$d_tem = substr($f_tem, 0, strpos($f_tem, '/'));
if (!in_array($d_tem, array('www'))) { continue; }
// SVN copy 对应的文件
$f_name = '/Data/wwwroot/' . str_replace('www/','',$f_tem);
$cmd = "svn update '$f_name'";
//执行svn命令
exec($cmd,$out);
//设置文件权限
exec("chown www:www $f_name");
}
//删除日志文件
unlink("/Data/logs/svn.log");
exit();
- SVN Commit 慢的问题
- SVN commit E155010问题
- svn commit 提交很慢问题解决办法
- 有关svn的commit
- 一个大小写引起的SVN无法Commit的问题
- 第一次创建svn无法commit程序的问题
- Android Studio 上传 svn 很慢 Commit Dialog一直存在
- svn 自动 commit 的实现
- svn 的add 和 commit
- 解决svn post-commit 中文乱码问题
- svn post-commit中文乱码问题
- 解决TortoiseSVN客户端引起电脑慢的问题[svn优化]
- 解决SVN检出项目慢和总是失败的问题
- SharedPreferences 的commit问题
- svn commit
- svn commit 问题 POST of '***/!svn/me' 403 forbidden
- SVN 本地及AndroidStudio的 update 和commit 的错误问题
- svn使用遇到的commit问题 xxx remains in tree-conflict
- iOS应用跳转对应应用评价的链接
- Java 项目的导入(import)和导出(export)
- 【连载】研究EasyUI系统—Tree组件(基本属性和用法)
- 如何写一篇好的技术博客
- zabbix 监控windows 主机
- SVN Commit 慢的问题
- sql触发器实例使用
- Spring--IoC
- 在原最大分区基础上再增加分区方法
- 查缺补漏--性能算子
- dpi ppi px pt dp sp区别
- C#中以SYSDBA连接登录ORACLE
- LaTeX下如何改变section、subsection等的fontstyle
- 存储过程4:分析函数累计求和