当前位置:首页 > PHP教程 > php高级应用 > 列表

PHP运行SVN命令显示某用户的文件更新记录的代码

发布:smiling 来源: PHP粉丝网  添加日期:2020-08-23 12:55:04 浏览: 评论:0 

使用SVN开发者们平时开发或代码上线过程中需要知道某个时间段内修改或添加过那些文件,所以用PHP写了个小程序,直接在浏览器中调用即可。

  1. <?php 
  2. $user=trim($_GET['user']); 
  3. $d=$_GET['date']; 
  4. if(!$d){ 
  5.  $d=date('Ymd',time()-86400*14); 
  6. if(emptyempty($user)){ 
  7.  echo "例如:svn_log.php?user=wang&date=20130118"
  8.  exit
  9.  
  10. $cmd='/usr/bin/svn log -v -r {'.$d.'}:"HEAD" --username 用户名 --password 密码 --no-auth-cache | sed -n "/'.$user.'/,/-----$/ p" 2>&1'
  11.  
  12. $p=dirname(__FILE__); 
  13.  
  14. exec('cd '.$p,$output); 
  15.  
  16. exec($cmd,$output); 
  17.  
  18. $d=date('Y年m月d日',strtotime($d)); 
  19. echo $user.'自'.$d.'以来:<br>'
  20. echo '---------------------------------------------<br>'
  21. $out=''
  22.  
  23. krsort($output); 
  24.  
  25. if(!emptyempty($output)){ 
  26.  foreach($output as $v){ 
  27.   $p1=strpos($v,'/branch/'); 
  28.   $p2=strpos($v,'/tg/'); 
  29.   if($p1!==false || $p2!==false){ 
  30.    if($p1!==false){ 
  31.     $v=substr($v,$p1+9); 
  32.    }else
  33.     $v=substr($v,$p2+4); 
  34.    } 
  35.    if($out==''){ 
  36.     $out=$v
  37.     echo $v.'<br>'
  38.    }else
  39.     if(strpos($out,$v)===false){ 
  40.      $out.=','.$v
  41.      echo $v.'<br>'
  42.     } 
  43.    }//phpfensi.com 
  44.   } 
  45.  } 
  46. }else
  47.  echo "没有文件"
  48. ?> 

Tags: PHP运行SVN

分享到: