我是 SVN 的新手。我需要获取比较两个标签的报告以及提交消息。
即我需要文件的完整路径并提交消息作为报告。
请让我知道是否有任何 svn 命令或任何脚本可以解决这个问题。
假设您遵循关于存储库中文件夹组织的通用约定 ( 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
如果您使用的是 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。在此处下载代码。