解析git log输出,最好是xml

D.C*_*.C. 12 xml git logging

我想解析git log的输出.我当前的工具通过解析svn log具有的--xml选项为svn执行此操作.我似乎无法弄清楚如何将git log输出为xml.如果xml不是一个选项,那么解析此输出的最佳方法是什么?我真的想避免将其解析为原始文本,寻找"作者"和"日期"等.

谢谢

Mat*_*Mat 12

您可以使用格式化选项构建自己的简单xml输出.

git log --pretty=format:"<entry><author>%an</author><commit_date>%cd</commit_date><message_body>%b</message_body></entry>"
Run Code Online (Sandbox Code Playgroud)

只需添加您想要的任何字段.(如果你想要正确的xml标题,你需要编写一些脚本等)

请参阅PRETTY FORMATS部分您可以访问的字段列表.man git-log

  • 实际上,只要任何字段的原始文本中都包含伪XML,这将无法正常工作.对这种方法的适当支持需要git级别的XML知识(至少可以用于转义).但它在大多数情况下都能正常工作. (11认同)
  • 即使使用CDATA也不完美。我被一种伪造的XML生成器所烧毁,它通过了大多数文本,并且等效于一个Git日志(不同的源代码控制系统,但想法相同),其中包含包含实际CDATA字符串的实际XML。尝试将其包装在CDATA中会导致其终止于嵌入式CDATA。鉴于我的XML生成器损坏了,我无法修复,因此我尽了最大努力对它进行了修改。但是,如果要生成XML,则真正正确的方法是对所有内容进行编码:例如,使用btoa / atob或base64。 (2认同)