我是SVN的新手。我需要获取报告以比较两个标签以及提交消息。
即我需要文件的完整路径并将报告作为报告提交。
请让我知道是否有任何svn命令或任何脚本将解决此问题。
答案 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。