Svn 标记差异和提交消息

Svn 标记差异和提交消息,svn,changelog,Svn,Changelog,我是SVN的新手。我需要得到比较两个标记的报告以及提交消息 ie我需要文件的整个路径,并将消息作为报告提交 请告诉我是否有任何svn命令或脚本可以解决此问题。假设您遵循有关存储库中文件夹组织的常见约定(trunk/branch/tags),并且您的标记都是从trunk创建的,您可以执行以下操作: 首先,如果您想在两个标记之间创建changelog,首先需要找到与这些标记对应的修订。 例如,可以使用以下命令对Tag1执行此操作: svn log --stop-on-copy https://rep

我是SVN的新手。我需要得到比较两个标记的报告以及提交消息

ie我需要文件的整个路径,并将消息作为报告提交


请告诉我是否有任何svn命令或脚本可以解决此问题。

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

首先,如果您想在两个标记之间创建changelog,首先需要找到与这些标记对应的修订。 例如,可以使用以下命令对
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
参数,并在属性列表中选择
路径
而不是
路径
,则会得到以下更简洁的列表:

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#.
修订版:1255
路径:/trunk/devel/cleancode support/sourceXml/translate.xsl
msg:改进的XSLT,带有“换行符”变量。
修订:1256
路径:/trunk/devel/cleancode support/sourceXml/translate.xsl
消息:更新谷歌分析跟踪代码。
修订:1257
路径:/trunk/devel/cleancode support/build.xml/trunk/devel/cleancode-support/analytics-files.txt/trunk/devel/dotnet/Projects/cleancode/SandCastle/cleancode.shfbproj/trunk/devel/powershell/scripts/psdoc_template.html
msg:java、perl、powershell和c#语言api的谷歌分析跟踪代码更新。

您可以在my中看到Get SvnLog的API。打开PowerShell“书”并转到SvnTools。下载代码。

这不是XML。如果您想进一步处理XML输出,请求XML输出可能是有意义的,但对于人类来说,常规文本格式就是您想要的;只需将标记URL作为参数提供给
svn diff
。还是只想要提交消息?@tripleee谢谢你注意到输入错误,现在已经修复了。
svnlog
是否也接受2个标记作为参数?