2009-01-19 56 views
16

我發現this的問題,但引用的選項沒有說任何關於支持「責備」的內容。我正在尋找的是一種綜合的方式來詢問「誰最後編輯了光標下的行?」。VisualStudio的「SVN Blame」插件

我知道大多數/所有的SVN客戶都以某種形式提供這個功能,但是我想要一些能夠讓我輕鬆地做到這一點的東西:「Humm,誰寫的?[tap tap]哦,他。 「

回答

15

的每日構建AnkhSVN的2.0有一個全新的註釋(非)由TFS啓發實現批註功能。

AnkhSVN Annotate Preview http://b.qqn.nl/f/2009/stackoverflow/20090120-AnkhSVN-Annotate.jpg

沒有真正可見的這些截圖,但它使用的語法着色等Visual Studio編輯器(你可以看到的sizeof()中的下一個圖像是藍色的右下角)。正如您在第二張圖片中看到的,它還允許在左側欄中的修訂區域中執行多個命令。

它目前沒有實現跳轉到活動行。但是你可以在其中使用Visual Studio goto行(Ctrl + G)命令。 (您可能可以在宏中編寫腳本)

最簡單的開始批註的方法是右鍵點擊編輯器 - > Subversion-> Annotate。

AnkhSVN Annotate Commands http://b.qqn.nl/f/2009/stackoverflow/20090120-AnkhSVN-Annotate-Detail.jpg

[2009-02-03更新:此功能現在是在新的穩定版常用]

3

在VisualSVN支持一定程度上的責備 - 您可以右鍵單擊文件並選擇「責備」。但是,它會彈出一個新窗口,可能不像您想要的那樣整合。

+0

好的。不像我想要的那麼幹淨。 (我個人也不想花費$$)文檔鏈接? – BCS 2009-01-19 23:06:00

+0

http://visualsvn.com/visualsvn/doc/但它沒有提到責備。我不能說我曾經需要Visual SVN的文檔。它基本上起作用。 – 2009-01-19 23:10:18

+0

Dude ... Visual $ 49的視覺SVN是天賜之物... Visual Studio的成本是多少? – 2009-01-19 23:11:14

5

我使用一組連接到TortoiseProc.exe的外部工具來執行像日誌,差異,責備,還原,提交,更新等SVN操作。然後,我創建這些外部工具的工具欄快捷方式,以便我擁有所有在IDE中可以訪問基本的SVN操作。

這裏是創建一個按鈕做對當前文件的追溯步驟:

  1. 去工具 - >外部工具,然後單擊「添加」
  2. 輸入任何你想要的標題(如「怪「)
  3. 對於命令,輸入以下內容(如果你安裝了TortoiseSVN到不同的目錄路徑會有所不同):C:\ Program Files文件\ TortoiseSVN的\ BIN \ TortoiseProc.exe
  4. 對於參數,輸入如下:/ command:blame/path:「$(ItemPath)」/ notempfile
  5. 對於初始目錄,輸入:$(ItemDir)

現在,每當你打開一個文件時,只需轉到工具 - >惹的禍,它應該產生在彈出窗口的指責。您還可以自定義工具欄併爲此外部工具創建快捷方式,以使其更加輕鬆。

7

我寫一個Visual Studio宏來得到行號信息,並把它傳遞給tortoiseproc.exe(這是TortoiseSVN一部分)

看看參數信息: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-automation.html

這裏我的宏:


Sub Blame() 
    sCurrFileFull = DTE.ActiveDocument.FullName 
    Dim activeDoc As Document 
    activeDoc = DTE.ActiveDocument 
    Dim nLine As Integer 
    nLine = activeDoc.Selection.CurrentLine 

    sShellCommand = sTorEXE & " /command:blame /startrev:1 /endrev:-1 /path:""" & 
        sCurrFileFull & """ /notempfile /line:" & nLine.ToString() 
    Shell(sShellCommand, AppWinStyle.MaximizedFocus, False) 
End Sub 
1

這裏是crashmstr工作版本的和Derek Dahmermacro code

Sub Blame() 
    Dim sCurrFileFull = DTE.ActiveDocument.FullName 
    Dim activeDoc = DTE.ActiveDocument 
    Dim nLine = activeDoc.Selection.CurrentLine 
    Dim sTorEXE = "TortoiseProc.exe" 
    ' Add path if you don't have TortoiseSVN on your PATH 
    Dim sShellCommand = sTorEXE & " /command:blame /startrev:1 /endrev:-1 /path:""" & sCurrFileFull & """ /notempfile /line:" & nLine.ToString() 
    Shell(sShellCommand, AppWinStyle.MaximizedFocus, False) 
End Sub 

按照Derek Dahmer的說明,使用Tools > Macros > Macro IDE將其添加到新的或現有的宏模塊。

爲了方便訪問,我加入了宏到我的代碼窗口上下文菜單:

Customize > Commands > Context menu > Editor Context Menus | Code Window 
Add Command > Macros > Find your macro 
Modify Selection > Name: Bla&me 

有它在上下文菜單可輕鬆鍵盤訪問,但你可以,當然,鍵盤快捷方式添加到它以及。我在Ctrl-Shift-M上使用它,默認情況下不會使用任何有用的東西:)。