3

私はSVNが初めてです。2 つのタグを比較するためのレポートと、コミット メッセージを取得する必要があります。

つまり、レポートとしてファイルのパス全体とコミットメッセージが必要です。

これを解決するsvnコマンドまたはスクリプトがあるかどうか教えてください。

4

2 に答える 2

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。他のタグに対して同じことを行うと、2 番目のリビジョン (たとえば258) が得られます。

次に、次のコマンドを実行して、完全な変更ログを取得できます。

svn log --verbose -r258:106 https://repoAddress/trunk
于 2012-09-06T14:13:24.963 に答える
1

Windowsを使用している場合は、PowerShellを使用して、システムデータを使用してあらゆる種類の巧妙なトリックを実行できます。私はあなたが探している種類のSubversionメタデータを分析するためのツールの小さなスイートを書きました。要求したとおりに実行する例を次に示します。2つのタグ名の間でアクセスされたすべてのファイルのパスとログメッセージを収集します。タグをリビジョン番号に相互参照する必要はありません。自動的に相互参照されます。

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#.

1回のコミットで多くのファイルが存在する可能性があることに注意してください。この-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 に答える