2012-09-06 72 views
3

我是SVN的新手。我需要獲得報告以比較兩個標記並提交消息。標籤差異和提交信息

即我需要整個文件路徑和提交消息作爲報告。

請讓我知道是否有任何svn命令或任何腳本將解決此問題。

回答

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)。

然後,你可以通過執行以下命令,有你完整的changelog:

svn log --verbose -r258:106 https://repoAddress/trunk 
+0

這不是XML。如果您想要進一步處理它,請求XML輸出可能有意義,但對於人類消費來說,常規文本格式就是您想要的。 – tripleee

+0

您可以直接在兩個標籤之間進行區分;只需將標記網址作爲'svn diff'的參數即可。或者你只想提交消息? – tripleee

+0

@tripleee感謝您注意到錯字,現在已經修復。並且'svn log'也接受2個標籤作爲參數嗎? –

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在我open source bookshelf。打開PowerShell「書」並轉到SvnTools。下載代碼here