A-A+

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

2020年08月23日 我爱编程 暂无评论

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

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

给我留言

Copyright © 四季博客 保留所有权利.   Theme  Ality

用户登录