2021-11-18 LUA利用svn命令行,获取文件夹下变更的文件

function getSVNDiff(path)

    local cmd = "svn diff --summarize "..path   
    local t = io.popen(cmd)
    local i = 0
    local head,content
    local res = {}
    
     for line in t:lines() do
        --print("line"..line)
        
        head = string.sub(line,1,1)
        content = string.sub(line,2)
        if head ~= "D" then     
            content = content:match("^[%s]*(.-)[%s]*$")     
            table.insert(res,content)       
        end
        
        i = i+1       
     end
     return res
end

local diffs = getSVNDiff("./max")

说明:
1.利用svn diff --summarize 命令,输出目录和svn最新版本之间的不同(也就是修改了哪些内容)
2.利用io.popen的方法,执行命令,返回结果会输出成文件。
3.然后,逐行读取输出内容,除了标记 "D" 之外的,做一些处理。(这里的例子不关心“D”标记的类型,具体应用请自行处理),D表示删除,A表示添加,M表示修改

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。