列出用户更改了两个版本的所有文件

时间:2014-01-10 11:08:45

标签: svn

svn diff -r16369:HEAD --summarize

以上命令列出所有已更改的文件,包括两个版本。

但我可以通过用户'sherkhan'找到所有在版本r16369之上更改的内容吗?

1 个答案:

答案 0 :(得分:1)

使用log:

的搜索功能
svn log -r16369:HEAD --search sherkhan -v

在日志中提到sherkhan并且不仅仅是提交者时,可能会发现修订版。

但是你可以写一个脚本来过滤那些你真正想要的东西。或者您可以使用--xml并编写xslt。或者您可以使用绑定编写程序来进行搜索。

我想你想要的取决于你使用它的频率以及你的目标是什么。但这至少应该让你开始。

XSLT示例

为此,我继续前进并制作了一个XSLT示例

使用user-changed-paths.xslt中的以下内容:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="user"/>
<xsl:output method="text" omit-xml-declaration="yes" />
<xsl:template match="/">
<xsl:for-each select="log/logentry">
<xsl:if test="author=$user">
<xsl:for-each select="paths/path">
<xsl:value-of select="." /><xsl:text>&#xa;</xsl:text>
</xsl:for-each>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

然后运行以下命令:

svn log -r16369:HEAD --search sherkhan -v --xml | xsltproc --stringparam user sherkhan user-changed-paths.xslt - | sort -u