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

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

 
代码如下:
<?php
$user=trim($_GET['user']);
$d=$_GET['date'];
if(!$d){
 $d=date('Ymd',time()-86400*14);
}
if(empty($user)){
 echo "例如:svn_log.php?user=wang&date=20130118";
 exit;
}
 
$cmd='/usr/bin/svn log -v -r {'.$d.'}:"HEAD" --username 用户名 --password 密码 --no-auth-cache | sed -n "/'.$user.'/,/-----$/ p" 2>&1';
 
$p=dirname(__FILE__);
 
exec('cd '.$p,$output);
 
exec($cmd,$output);
 
$d=date('Y年m月d日',strtotime($d));
echo $user.'自'.$d.'以来:<br>';
echo '---------------------------------------------<br>';
$out='';
 
krsort($output);
 
if(!empty($output)){
 foreach($output as $v){
  $p1=strpos($v,'/branch/');
  $p2=strpos($v,'/tg/');
  if($p1!==false || $p2!==false){
   if($p1!==false){
    $v=substr($v,$p1+9);
   }else{
    $v=substr($v,$p2+4);
   }
   if($out==''){
    $out=$v;
    echo $v.'<br>';
   }else{
    if(strpos($out,$v)===false){
     $out.=','.$v;
     echo $v.'<br>';
    }
   }
  }
 }
}else{
 echo "没有文件";
}
?>
 
 

时间: 2024-10-04 01:06:51

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

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

复制代码 代码如下: <?php$user=trim($_GET['user']);$d=$_GET['date'];if(!$d){ $d=date('Ymd',time()-86400*14);}if(empty($user)){ echo "例如:svn_log.php?user=wang&date=20130118"; exit;} $cmd='/usr/bin/svn log -v -r {'.$d.'}:"HEAD" --username

jsp显示目录下所有文件与子目录代码

jsp教程显示目录下所有文件与子目录代码  public static void getFiles(List<File> fileList, String path, String fileSuffix) {           File file = new File(path);           File[] files = file.listFiles();           if (files == null) {               return;          

Ubuntu下SVN命令行递归添加目录文件(免去一个一个的添加 --force)

由于在Linux下一直没有找到好的svn工具(类似于TortiseSVN的).当然eSVN这些也不错,但就是使用上觉得还不是非常习惯.最终还是选择了svn原始的命令行工具来进行版本控制操作. 命令行的有些指令使用起来还是比较方便的.如svn checkout.svn commit这些命令基本上使不使用图形界面关系也不是很大.唯一比较麻烦的命令的就是svn add,因为新增加的文件会分步在不同的目录中,有些目录中的文件已经存在于受控的svn资料夹,而有些文件所在的目录都是新增的.简单的输入svn

asp.net 用户在线退出更新实现代码_实用技巧

最主要的问题是关闭浏览器的时候如何更新用户在线列表 网上流传的方法是不停的ajax异步发送请求,当不再请求的时候就可以判断用户已经关闭浏览器 复制代码 代码如下: var x=0; function myRefresh() { var httpRequest = new ActiveXObject("microsoft.xmlhttp"); httpRequest.open("GET", "test.aspx", false); httpRequ

如何在Linux中不输入密码运行sudo命令

假设你在只有自己使用的计算机上运行 Linux 系统,比如在笔记本电脑上,在每次调用 sudo 时需要输入密码,长期下来就会觉得很乏味.因此,在本指南中,我们将描述如何配置 sudo 命令在运行时而不输入密码. 此设置在 /etc/sudoers 文件中完成,这是使用 sudo命令的默认安全策略;在用户权限指定部分. 重要:在 sudeors 文件中,默认打开的 authenticate 参数用于验证目的.如果设置了它,用户必须通过密码(或其他身份验证方法)进行身份验证,然后才能使用 sudo

如何在 Linux 中不输入密码运行 sudo 命令

假设你在只有自己使用的计算机上运行 Linux 系统,比如在笔记本电脑上,在每次调用 sudo 时需要输入密码,长期下来就会觉得很乏味.因此,在本指南中,我们将描述如何配置 sudo 命令在运行时而不输入密码. 此设置在 /etc/sudoers 文件中完成,这是使用 sudo 命令的默认安全策略:在用户权限指定部分. 重要:在 sudeors 文件中,默认打开的 authenticate 参数用于验证目的.如果设置了它,用户必须通过密码(或其他身份验证方法)进行身份验证,然后才能使用 sudo

java代码中运行doc命令

问题描述 java代码中运行doc命令 我想要在我的Java代码中运行一段doc命令,然后将正常在doc窗口输出的信息取出来,这个信息应该怎么获取,求助各位大神 解决方案 java doc运行命令 解决方案二: http://developer.51cto.com/art/201107/273282.htm

jquery插件-jQuery插件已经在页面导入了,运行时还是显示未定义

问题描述 jQuery插件已经在页面导入了,运行时还是显示未定义 我文件也导入进来了,他们是放在同级目录下的,可以点进去,但页面还是会报错:SCRIPT5007: 属性"$"的值为 null.未定义或不是 Function 对象, <script type="text/javascript" src="jquery-1.11.1.min.js"></script> <script type="text/ja

Shell脚本中使用for循环和cat命令实现按顺序合并文件_linux shell

工作目录下面有mydoc1.txt,mydoc2.txt...mydoc41.txt,本来想用sed排列依次取值排序,然后用cat来合并这些文件,发现达不到预期效果,合并令如下所示: 复制代码 代码如下: ls -lF *.txt | sed  -n '/mydoc1/,/mydoc41/p' | xargs -i cat {}> >mynew.txt 发现用其命令达不到预期效果,后来经检查发现,问题应该出现在sed排序上面,它仍然是按照位数来进行排序,并没有智能的按照范围来排序,sed取值命