2012-09-06 52 views
3

我是SVN的新手。我需要获得报告以比较两个标记并提交消息。标签差异和提交信息

即我需要整个文件路径和提交消息作为报告。

请让我知道是否有任何svn命令或任何脚本将解决此问题。

回答

4

假设你按照有关文件夹组织共同约定在你的仓库(trunk/branch/tags)和自己的代码都从主干创建的,你可以做到以下几点:

首先,如果你想2的更新日志标签,您首先需要找到与这些标签相对应的修订版本。 这可以Tag1使用命令来完成,例如:

svn log --stop-on-copy https://repoAddress/tags/Tag1 

输出结果会是这样的:

------------------------------------------------------------------------ 
r106 | myName | 2012-06-06 17:15:34 +0200 (mer., 06 juin 2012) | 1 line 

Commit message 
------------------------------------------------------------------------ 

从那里你可以找到相应的修订106。 对另一个标签做相同的处理会给你第二个修订版(比如258)。

然后,你可以通过执行以下命令,有你完整的changelog:

svn log --verbose -r258:106 https://repoAddress/trunk 
+0

这不是XML。如果您想要进一步处理它,请求XML输出可能有意义,但对于人类消费来说,常规文本格式就是您想要的。 – tripleee

+0

您可以直接在两个标签之间进行区分;只需将标记网址作为'svn diff'的参数即可。或者你只想提交消息? – tripleee

+0

@tripleee感谢您注意到错字,现在已经修复。并且'svn log'也接受2个标签作为参数吗? –

1

如果你在Windows下你可以使用PowerShell做各种巧妙的运用与系统数据。我编写了一小套工具来分析你正在寻找的Subversion元数据。下面是一个示例,完成您请求的操作:收集两个标签名称之间所有文件的路径和日志消息。您不必将标签交叉引用到修订版本号上 - 它会自动为您完成。

Get-SvnLog -ByFile ` 
    -TagPath file:///C:/usr/svn/cleancode/tags ` 
    -RevisionRange "Release_1_1_04:Release_1_2_01" | 
Select Revision, Path, Msg | 
Format-List 

这里是输出的一部分。

Revision : 1255 
Path  : /trunk/devel/cleancode-support/sourceXml/translate.xsl 
Msg  : Improved XSLT with variable for 'newline'. 

Revision : 1256 
Path  : /trunk/devel/cleancode-support/sourceXml/translate.xsl 
Msg  : Updated google analytics tracking code. 

Revision : 1257 
Path  : /trunk/devel/cleancode-support/build.xml 
Msg  : Updated google analytics tracking code for language APIs: java, perl, powershell, and c#. 

Revision : 1257 
Path  : /trunk/devel/cleancode-support/analytics-files.txt 
Msg  : Updated google analytics tracking code for language APIs: java, perl, powershell, and c#. 

请注意,您可能在一个提交中有很多文件。使用-ByFile参数表示明确枚举每个文件(从而看到重复的日志消息)。如果省略-ByFile参数 - 在属性列表中选择Paths而不是Path - 你得到这个更简洁房源:

Revision : 1255 
Paths : <paths><path action="M" kind="">/trunk/devel/cleancode-support/sourceXml/translate.xsl</path></paths> 
msg  : Improved XSLT with variable for 'newline'. 

Revision : 1256 
Paths : <paths><path action="M" kind="">/trunk/devel/cleancode-support/sourceXml/translate.xsl</path></paths> 
msg  : Updated google analytics tracking code. 

Revision : 1257 
Paths : <paths><path action="M" kind="">/trunk/devel/cleancode-support/build.xml</path><path action="A" 
      kind="">/trunk/devel/cleancode-support/analytics-files.txt</path><path action="M" 
      kind="">/trunk/devel/dotnet/Projects/CleanCode/SandCastle/CleanCode.shfbproj</path><path action="M" 
      kind="">/trunk/devel/powershell/scripts/psdoc_template.html</path></paths> 
msg  : Updated google analytics tracking code for language APIs: java, perl, powershell, and c#. 

您可以看到GET-SvnLog的API在我open source bookshelf。打开PowerShell“书”并转到SvnTools。下载代码here