3

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

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

请让我知道是否有任何 svn 命令或任何脚本可以解决这个问题。

4

2 回答 2

4

假设您遵循关于存储库中文件夹组织的通用约定 ( trunk/branch/tags) 并且您的标签都是从主干创建的,您可以执行以下操作:

首先,如果您想要两个标签之间的变更日志,您首先需要找到与这些标签对应的修订。例如,这可以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
于 2012-09-06T14:13:24.963 回答
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 。打开 PowerShell“书”并转到 SvnTools。在此处下载代码。

于 2013-02-09T23:15:54.643 回答