2010-05-14 52 views
1

我使用SVN和谷歌代碼項目託管一個學校項目。由於在尺寸代碼庫的增加,我經常發現自己想知道的問題,如:「是誰?原來在這行代碼 檢查」SVN歸因插件?

  • 」誰最近檢查了 最多的代碼?「
  • 「最終產品中,Person X寫了多少?」 「
  • 」哪種編碼器最適合遵守編碼約定?「

是否有任何插件可以做到這一點? (如果沒有的話,我會有興趣自己開發一個。關於從哪裏開始呢?)

我們使用Visual Studio 2008和AnkhSVN插件。

回答

7

在Subversion本身中,命令svn blame爲您提供了文件每一行的作者和修訂信息。

外部工具StatSVN是相當不錯的。它大部分都是你想要的,包括author stats。不包括遵守代碼約定。對於這樣的事情,你最好用類似Sonar的東西。

+0

很高興知道。如果我爲Visual Studio安裝了ankhSVN,我可以在命令行上訪問SVN嗎?如果是這樣,怎麼樣? – 2010-05-14 02:37:18

+0

@Rosarch - 抱歉,無法幫到你。我從未使用過Visual Studio。或者任何SVN IDE插件。或者就此而言,任何IDE ......;) – 2010-05-14 02:40:46

+1

除了AnkhSVN,還可以使用TortoiseSVN,並且有一個圖形化的指責,或者您可以從以下幾個源之一獲取命令行win32版本:http:// subversion .apache.org/packages.html#windows如果你試圖同時使用兩個Ankh和其他人之一,你可能會遇到鎖定問題,但只要你在移動到另一個之前完成任何活動操作,你就會沒事的。我在我工作的所有時間混合使用命令行和烏龜。 (請注意,Tortoise的TSVNCache偶爾會對此有點不高興;我通常禁用它) – leander 2010-05-14 03:15:27

0

svn blame命令爲您提供了每行最後更改的作者和修訂版本,您可以使用-r #選項查看早期版本中的相同信息。因此,要獲得完整的歷史記錄,您必須循環:

  1. svn blame -r HEAD以獲得最新更改。
  2. 檢查你感興趣的線路,確保它存在。
  3. 解析版本號(全部在文件中或者只在您感興趣的行的範圍內)並找到最大的版本號。
  4. 返回1使用最大的版本 - 1而不是HEAD

一般情況下,您在修改線路方面存在困難。我已經編寫了一些幫助每一步的工具,但是每當我需要做這些事情時,我都必須手動完成,在每個階段查看svn blame輸出,以查看每個代碼中的代碼如何改變修訂。

+0

其中一個Perforce客戶端有一個漂亮的滾動條,您可以抓住並拖動它來遍歷修訂版,觀看代碼彈出和更改。相對於目前的修訂,我認爲甚至還有年齡相關的線條着色。當我轉移到另一家使用Subversion + TortoiseSVN的公司時,我錯過了那個工具。 – leander 2010-05-14 03:29:53

+0

這聽起來很酷。我不認爲有一種方法可以快速使用svn來完成,至少在存儲庫是遠程的時候不會。也許如果你已經在本地機器上安裝了版本庫,並使用admin API來訪問歷史記錄,那麼你可以編寫一個應用程序來實現這一點。 – DougWebb 2010-05-21 21:37:50