美文网首页
SVN获得更新版本

SVN获得更新版本

作者: Quillagua | 来源:发表于2019-08-16 14:31 被阅读0次
//获取最后一个更新版本
public static String getLatestSvnVersion(String svnPath){
    String version = "";
    String command = "svn info " + avnPath;
    Runtime rt = Runtime.getRuntime();
    Process p = null;
    try{
       p = rt.exec(command);
       InputStream in = p.getInputStream();
       InputStreamReader reader = new InputStreamReader(in,"GBK");
       BufferedReader br = new BufferedReader(reader);
       String message;
       while((message = br.readLine()) != null){
            if(message.equalsIgnoreCase("")){
            continue;
            }
            if(message.indexOf("Last Changed Rev")>=0){
               version = message.split(":")[1].trim();
               break;
            }
            if(message.indexOf("最后修改版本")>=0){
               version = message.split(":")[1].trim();
               break;
            }
            System.out.printIn(message);
       }

    } catch (IOException e){
        e.printStackTrace();
    }
    return version;
}

public static String readSvnLogs(String svnPath,String tagetSvnNo,String currentSvnNo){
    String logs = "";
    String lasterSvnNo = getLatestSvnVersion(svnPath);

    String command = "svn log " + svnPath;
    //当前版本为空或者不小于最新版本,不升级
    if(currentSvnNo.equalsIgnoreCase("") || Integer.valueOf(currentSvnNo) > Integer.valueOf(lasterSvnNo)){
        return null;
    }
    //目标版本为空或者也大于最新版本,取最新版本
    if(tagetSvnNo.equalsIgnoreCase("") ||  Integer.valueOf(tagetSvnNo) > Integer.valueOf(lasterSvnNo)){
       tagetSvnNo = lasterSvnNo;
    }else{
       //目标版本小鱼当前版本认为不升级
       if(Integer.valueOf(tagetSvnNo) <= Integer.valueOf(lasterSvnNo)){
          return null;
       }
    }

    command += " -r " + tagetSvnNo +":" + currentSvnNo;
    logs += "版本有变更,需要升级,预计从版本:"+currentSvnNo+"升级到版本:"+ tagetSvnNo + "\r\n";
    logs += "svn代码变更日志:\r\n";

    Runtime rt =Runtime.getRuntime();
    process p = null;
    try{
        p = rt.exec(command);
        InputStream in = p.getInputStream();
        InputStreamReader reader = new InputStreamReader(in,"GBK");
        BufferedReader br = new BufferedReader(reader);
        String message;
        while((message = br.readLine())!=null){
           if(message.equalsIgnoreCase("")){
            continue;
            }
            logs += message + "\r\n";
        }

        //转移Linux要用到的特殊字符预计json转数组的特殊符号
        logs = logs.replace("\\","/").replace("[","").replace("]","").replace("\","").replace("%","百分号");
    } catch (IOException e){
       e.printStackTrace();
    }
    logger.info(logs);
    return logs;

}

相关文章

网友评论

      本文标题:SVN获得更新版本

      本文链接:https://www.haomeiwen.com/subject/tdofsctx.html