Visual Studio的“SVN Blame”插件

时间:2009-01-19 22:59:55

标签: visual-studio svn plugins

我发现了this个问题,但引用的选项没有说明支持“责备”。我正在寻找的是一种综合方式来询问“谁在光标下编辑了最后一行?”。

我知道大多数/所有SVN客户都会以某种形式表达这一点,但我想要的东西让我很容易就可以随心所欲地做到这一点:“哼哼,是谁写的?[点击水龙头]哦他。”

5 个答案:

答案 0 :(得分:16)

AnkhSVN 2.0的每日版本都有一个全新的注释(责备)实现,受TFS注释功能的启发。

AnkhSVN Annotate Preview
(来源:qqn.nl

在这些屏幕截图中不是真的可见,但它使用Visual Studio编辑器进行语法着色等。(您可以看到下一个图像右下角的sizeof()为蓝色)。正如您在第二张图片中看到的那样,它还允许左栏中修订区域上的几个命令。

它目前没有实现跳转到活动行。但您可以在其中使用Visual Studio转到行(Ctrl + G)命令。 (您可以在宏中编写脚本)

开始注释的最简单方法是右键单击编辑器 - > Subversion-> Annotate。

AnkhSVN Annotate Commands
(来源:qqn.nl

[更新2009-02-03:此功能现在通常在新的稳定版本中提供]

答案 1 :(得分:8)

我编写了一个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

答案 2 :(得分:6)

我使用一组连接到TortoiseProc.exe的外部工具来执行SVN操作,如log,diff,blame,revert,commit,update等。然后我创建这些外部工具的工具栏快捷方式,以便我拥有所有基本工具可以在IDE中访问SVN操作。

以下是创建按钮以对当前文件进行指责的步骤:

  1. 转到工具 - >外部工具,然后单击“添加”
  2. 输入您想要的任何标题(例如“责备”)
  3. 对于该命令,请输入以下内容(如果您将TortoiseSVN安装到其他目​​录,路径将有所不同):c:\Program Files\TortoiseSVN\bin\TortoiseProc.exe
  4. 对于参数,请输入以下内容:/command:blame /path:"$(ItemPath)" /notempfile
  5. 对于初始目录,请输入:$(ItemDir)
  6. 现在,无论何时打开文件,只需转到工具 - >责备它应该在弹出窗口中生成Blame。您还可以自定义工具栏并为此外部工具创建快捷方式,以使其更加轻松。

答案 3 :(得分:3)

在VisualSVN中,在某种程度上支持责备 - 您可以右键单击文件并选择“责备”。但是,它会弹出一个新窗口,可能没有按照您的需要进行集成。

答案 4 :(得分:1)

以下是crashmstrDerek Dahmer macro 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上使用它,默认情况下没有任何有用的东西:)。