标记差异和提交消息

时间:2012-09-06 13:52:00

标签: svn changelog

我是SVN的新手。我需要获取报告以比较两个标签以及提交消息。

即我需要文件的完整路径并将报告作为报告提交。

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

2 个答案:

答案 0 :(得分: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)。

然后,您可以通过执行以下命令获得完整的更改日志:

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

答案 1 :(得分: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#.

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