通过svn log命令行方法获取到svn记录的最后更新人、更新时间,以及更新记录。

在通过nodejs中的child_process.exec()或execSync()方法来实现内容的获取。

在mac下svn命令行默认已经安装,Windows下的话,需要单独安装svn命令行。

具体实现

  • 新建svnlog.js,写入如下代码:

    • 异步方法:child_process.exec()
    • 同步方法:child_process.execSync()
    var child_process = require('child_process') ;
    var svnUrl = 'https://svn.chsi.com.cn/svn/test.html';
    var  svnLog = 'svn log '+ svnUrl +'  -l 1'; //命令行方法
    
    //异步方法
    child_process.exec(svnLog,function(error,stdout,stderr){
        if (error) {
            console.error("exec error:"+error);
            return;
        }
        //console.log(stdout);
        var dataArr = stdout.split('\n')
        var content = dataArr[3];//svn提交的内容
        console.log(content+content.length);
        var otherInfo =  dataArr[1].split('| ');
    
        var author = otherInfo[1].substr(0,otherInfo[1].length-1);//svn提交的作者
        console.log(author+author.length);
        var date = otherInfo[2].substr(0,10);//svn提交的日期
        console.log(date+date.length);
    });
    
    //同步方法
    var data = child_process.execSync(svnLog).toString();
    console.log(data);
    var dataArr = data.split('\n')
    var content = dataArr[3];//svn提交的内容
    console.log(content);
    var otherInfo =  dataArr[1].split('| ');
    
    var author = otherInfo[1].substr(0,otherInfo[1].length-1);//svn提交的作者
    console.log(author);
    var date = otherInfo[2].substr(0,10);//svn提交的日期
    console.log(date);
    
    • 执行命令行:node svnlog.js
    • 执行结果如下

    效果图

详见【demo

以上文章来自:黄卉 , https://huanghui8030.github.io/node/svnlog.html