我從Linux提示符使用TortoiseSVN和svn clinet。svn日誌和責怪svn:外部
在我們的項目中,我有一個svn:external屬性的目錄。我試圖挖掘svn的歷史,看看誰和什麼時候做了改變。我沒有找到一種方法來查看目錄的屬性日誌或責備/註釋目錄svn屬性?
怎麼辦?
我從Linux提示符使用TortoiseSVN和svn clinet。svn日誌和責怪svn:外部
在我們的項目中,我有一個svn:external屬性的目錄。我試圖挖掘svn的歷史,看看誰和什麼時候做了改變。我沒有找到一種方法來查看目錄的屬性日誌或責備/註釋目錄svn屬性?
怎麼辦?
試試這個命令:
$ svn log -v --diff --depth=empty $dir
在包含svn:externals
屬性你感興趣的目錄你會看到像這樣的輸出:的
r154474 | dweintraub | 2012-11-14 09:50:20 -0500 (Wed, 14 Nov 2012) | 1 line
Changed paths:
M /branches/ivy/TC-Common-All
Some utterly useless comment
Index: .
===================================================================
--- . (revision 154473)
+++ . (revision 154474)
Property changes on: .
___________________________________________________________________
Modified: svn:externals
## -1 +1 ##
-^/trunk/ivy.dir ivy.dir
+^/branches/ivy/ivy.dir ivy.dir
作品。但它也會顯示常規提交(即添加/刪除文件)。我的項目太大,需要很長時間才能完成相關的提交。命令是否可以優化? – dimba
你可以編寫一個腳本來首先在目錄上做一個'svn log',然後把你看到正則表達式'^ \ s + M \ s + $ directory_name $'的那些條目拉出來。這將很快爲您提供以某種方式修改目錄的所有修訂版本。由於它是一個目錄,因此一些屬性必須已經更改。然後,你可以在這些修訂版上做一個'svn log --diff -v --depth = empty'。比簡單的流水線稍微複雜一點,但如果你在Perl或Python上有一半的體面,那麼編寫這樣的腳本不需要太長的時間。 –
建立David的建議,如果你想限制它只是外部,關鍵的「修改:svn:外部評論」。我使用的是grep&tee,如果你使用的是Windows,可以使用[unxutils](http://unxutils.sourceforge.net/)。三通可以用>>重定向替換。在這裏,我告訴它給我的日誌(你可以限制在一個範圍內),然後搜索表達式「Modified:svn:externals」並抓住7行'B'efore和2'A'fter,這給出了我需要的信息。 'svn log -v --diff --depth = empty。 | grep -B 7 -A 2 -e「修改:svn:externals」| tee externalChanges.log' – Damon
可能的複製[怎麼辦你在SVN中獲取文件/文件夾屬性的歷史記錄?](http://stackoverflow.com/questions/1230389/how-do-you-get-the-history-of-a-file-folder-property-in -svn) –