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表示修改