最近在做一个小功能,获取SVN配置库从指定时间起修改的所有文件。查阅好多信息,用svn diff命令及加入--summarize参数能得到想要的数据。命令如下:
svn diff -r {2024-1-10} --summarize Repo(配置库地址)
截取显示乱码字符如下,在使用--summarize参数时,获取到的是乱码数据,不能正常显示。比较有意思的是,不用summarize参数用svn diff获取到的数据是正常的,加上该参数得到的是乱码。如有清楚原因的大神请指教。
查阅了很多资料,最后借助如下博主的办法解决:
https://blog.csdn.net/weixin_42649856/article/details/102796048
贴上代码:
from urllib.parse import unquote import subprocess def getsvnfilelist(): svn_cmd_run = subprocess.run("svn diff -r %s --summarize %s" % (startDate,SVNpath), shell=True,stdout=subprocess.PIPE).stdout svn_cmd_stdout = unquote(svn_cmd_run.decode('gbk')) print(svn_cmd_stdout)
进行编码转换后,能获得正常数据,截图如下: