如何查询列出用户对Subversion存储库的所有提交?
我想找到我曾经对Subversion存储库做过的所有提交,而不仅仅是当前快照中的提交。更重要的是,我想通过提交时使用的SVN注释来组织文件列表。
我在想可能是一个解析
输出的Python或shell脚本svn log | grep username
提取修订版,然后将输出通道管道输出到:
svn log -r [revision numbers go here]
也许一些脚本大师可以帮助我......
答案 0 :(得分:2)
我想以下是一个很好的起点。
svn log -v --xml --with-all-revprops URL_OF_REPO
它将输出XML日志中的条目,如下所示(在测试存储库中生成)。
D:\temp\co-test-repo>svn log -v --xml --with-all-revprops --username AWXGX file:///d:/svn/repos/test-repo
<?xml version="1.0"?>
<log>
<logentry
revision="2">
<author>AWXGX</author>
<date>2010-05-05T19:20:34.062500Z</date>
<paths>
<path
kind="file"
action="A">/src/main/java/org/pers/OtherClass.java</path>
</paths>
<msg>add another class</msg>
</logentry>
<logentry
revision="1">
<author>AWXGX</author>
<date>2010-05-05T19:20:00.578125Z</date>
<paths>
<path
kind="dir"
action="A">/src/main/java/org</path>
<path
kind="file"
action="A">/src/main/java/org/pers/SomeClass.java</path>
<path
kind="dir"
action="A">/src</path>
<path
kind="file"
action="A">/pom.xml</path>
<path
kind="dir"
action="A">/src/main</path>
<path
kind="dir"
action="A">/src/main/java</path>
<path
kind="dir"
action="A">/src/main/java/org/pers</path>
</paths>
<msg>creation of project files</msg>
</logentry>
</log>
然后执行XSLT转换以输出您想要的内容。我希望这会有所帮助。
编辑: 我删除了仅用于验证目的的--username
,但仍然可以使用该命令(我在真实的存储库中尝试过它) )。然后使用XSLT对用户进行过滤。
答案 1 :(得分:0)
答案 2 :(得分:0)
有一个脚本contrib/search-svnlog.pl
可以做你想做的事。
这是Subversion躯干上源代码的链接,但它看起来好像没有改变:
http://svn.apache.org/repos/asf/subversion/trunk/contrib/client-side/search-svnlog.pl
这是我编写的脚本svnlogfilter.pl的补丁,你可能需要梳理它来使用它。我会把它放在RSN的某个地方。