svn - 如何在单个 xml 文件中为分支中的所有非二进制文件获取递归 svn 责任报告?

标签 svn annotations nant nantcontrib

如何获得分支中所有非二进制文件的完全递归 svn 责任报告,其中输出位于 xml 格式的单个文件中,包括修订、日期、作者、文件名和路径以及文本文件本身的行?整个输出需要位于单个文件中。它将作为构建的一部分通过 CCNet 实例执行。

可用工具包括最新稳定版本的 nant 和 nantcontrib、msbuild 以及最新的命令行 svn。

以下是我遇到的一些问题:命令行 svnblame 命令不支持目录递归。 Blame 的 --xml 选项不包括每行的实际文本,尽管它确实包含其他所有内容。默认情况下,nantcontrib 传递 --quiet 参数(与任务引用相反),这在blame 命令上不受支持。 Nantcontrib svn 任务可能不接受 --xml 参数。

最佳答案

简单的答案是没有任何简单的方法可以做到这一点。最好、最正确的方法是编写自己的 svn 客户端(或扩展现有客户端),以便它具有您需要的功能。绝非微不足道。

还有一种错误的做法,也涉及到编写代码。 不要这样做:

find . -type f | grep -v .svn | xargs svn blame > line_data
find . -type f | grep -v .svn | xargs svn --xml blame > xml_data

您可以将两个 svn 命令一起编写脚本以避免运行 find 两次,但这仍然会非常慢。雪上加霜的是,您必须自己解析这两个文件,以将实际的源代码行添加到 xml 数据中。

可悲的是,我认为这就是标准 svn 客户端对您想要的支持的程度,并且我找不到任何其他做得更好的客户端(有些甚至不支持 blame).

关于svn - 如何在单个 xml 文件中为分支中的所有非二进制文件获取递归 svn 责任报告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/413777/

相关文章:

svn - 更改 SVN 存储库

svn - 如何防止 checkout SVN 中的某些目录?

java - 我可以对注释本身使用 BeanValidation 吗?

java - Intellij idea 显示错误警告

svnsync : Cannot accept 'svn:log' property because it is not encoded in UTF-8

多个注释中的 Django Count()

c# - Nant 没有看到引用

c# - Nant 和 Nunit2 的问题

unit-testing - 在 nant 中运行所有单元测试,即使有些测试失败!

svn - 如何使 DVCS 与 Subversion 完全互操作?