希望实现一个提取两个svn revision间有变动(增/删/改)的文件的列表
的命令行工具;可以帮我们项目做一些流程中的自动化工作(time -80%!)。
其实这事情,GUI界面的TortoiseSVN就已经可以在Log Message Dialog中通过
点击任两个revision条目来右键Compare revisions完成并存盘;但可惜没有
commandline接口,而且我的想法中还有些特殊的过滤规则和输出格式要求。
直觉上,希望直接pipe一下"svn log url -rR1:R2 -v"之类的输出来做。
但基于svn美化的文本输出还原它底层的数据结构会陷进(造轮子^2)的杯具中。
Google了一下"python svn"发现pysvn这个3rd lib( Python的3rd lib真是
比Lua多一个数量级*_* ),用它便可独立完成普通svn client能实现的功能。
变动文件列表提取就是小菜一碟了。
---------------------------------------------------------------------
动手了。
首先,确定svn server的版本号:
从WEB浏览器上打开要提取的svn仓库URL页面,最下方应该有类似:
"Powered by Subversion version 1.5.5 (r34862). "
的信息。现在可以到http://pysvn.tigris.org找对应版本的PySvn库。
我用的是Python2.5。找到一个版本的PySvn刚好合适:
======&#