我想在我的subversion日志中获取所有提交消息,并将它们连接成一个文本文件,最好使用Windows上的svn命令行。
每个提交消息都具有以下格式:
- r1留言
- r1留言
- r1消息
我想要的是:
- r1留言
- r1留言
- r2留言
- r2留言
- r3留言
[...]
- r1000留言
更新
我认为上面的内容很清楚,但我在日志中不想要的是这种类型的信息:
r2130 |用户| 2010-03-19 10:36:13 - 0400(2010年3月19日星期五)| 1行
没有元数据,我只想要提交消息。
答案 0 :(得分:6)
您可以使用--xml
命令的svn log
参数,该命令将输出格式设置为xml,然后使用某种脚本语言轻松解析它以生成所需的文本文件。
>
在python中类似于:
from xml.dom.minidom import parse
xml = parse("log.xml")
entries = xml.getElementsByTagName("logentry")
for e in entries:
rev = e.getAttribute("revision")
msg = e.getElementsByTagName("msg")[0].firstChild.nodeValue
print "-r" + rev + " " + msg
将其保存为parseLog.py,然后只需启动
svn log --xml > log.xml
python parseLog.py > revisions.txt
答案 1 :(得分:1)
正如Davide Gualano建议您可以使用--xml命令生成可以解析的输出。使用任意xslt处理器和xslt文件来生成所需的输出。有关示例,请参阅svn2cl。
答案 2 :(得分:0)
从windows命令行,不知道如何摆脱-------
的界限svn log - q > svn.log
答案 3 :(得分:0)
使用Tortoise SVN,您可以右键单击,选择Tortoise / Show Log。选择所有日志并将其粘贴到文件中。
答案 4 :(得分:0)
如果您是Java开发人员,可以使用SVNKit准确编写您希望的Subversion提取程序。
否则,正如其他人已经回答的那样,您可以获取日志输出并手动操作它。