标签归档:svn

通过浏览器更新SVN

简单脚本实现通过浏览器更新SVN。

header("Cache-Control:no-cache,must-revalidate");
$handle = popen('export LC_CTYPE=en_US.UTF-8 && /usr/bin/svn up --username user_test --password pass_test /data1/svn_repo 2>&1', 'r');
$read = stream_get_contents($handle);//需要 PHP5 或更高版本
echo "

";  
printf($read);  
echo "

";
pclose($handle);

途中踩了两个坑:

1.svn 有中文文件名
export LC_CTYPE=en_US.UTF-8 解决此问题

2.命令返回1,但是没有错误显示

2>&1 解决此问题

3.运行此命令要保证运行PHP的服务程序用户具有读写权限

省事的做法是通过此程序直接checkout一份。

参考:http://zyan.cc/post/371/

PHP提交SVN代码

代码是从崔凯同学那里抄来的。之所以要拿过来一是因为这种想法很好,我自己在工作中也是这样,经常把PHP当做一个小工具来实现,如果PHP够好的话,还可以在linux底下辅助shell完成一些功能。二是因为代码写的很棒,我这个专门学习PHP的都要惭愧的低下头喽!

", executa($cmd));
echo $resultado . '
';
function executa($cmd, $pathInicial=null) {
$resultado = array();
$handle = popen("$cmd 2>&1", 'r');
while ($read = fread($handle, 20096)) {
$resultado[] = $read;
}
pclose($handle);
flush();
return $resultado;
}
?>