VS 一键调用 SVN Blame

在Windows上做项目开发的时候,常常需要调用SVN Blame去追溯一个文件的编辑历史,但是这个常见的需求往往需要很繁琐的步骤。首先需要打开文件所在文件夹,然后右键,在一长排上下文菜单中准确地选中Blame命令,然后指定版本号,好不容易打开了Blame界面,还要手动Alt+G定位到某一行。实在是很麻烦。

其实VS有个外部工具菜单,可以通过VS直接调用外部的可执行文件或者脚本,有了这个功能,我们就可以一键调用SVN Blame,并且准确定位到你在VS中选中的那一行。

一、编写外部脚本  tortoise_blame.bat 

echo off & color 0A
for /f "usebackq delims=" %%i in (`"svn info %1 | findstr "Rev""`) do set Reversion=%%i
echo %Reversion%
set str="%Reversion%"
for /f "tokens=4,*" %%i in (%str%) do (
    set Reversion=%%i
)
echo %1 : %2
rem echo %Reversion%
rem /endrev:"-1" is also ok
TortoiseProc.exe /command:blame /path:%1 /line:%2 /startrev:1 /endrev:%Reversion%

这个脚本的作用就是调用 TortoiseProc.exe 可执行文件,执行blame命令,然后传入参数。前提是SVN安装路径已经在你的环境变量中,这样你才可以直接调用TortoiseProc.exe程序,否则你需要使用绝对路径。

调用这个脚本需要传入两个参数 文件路径(%1) 和 行号(%2)

最终的SVN版本号是通过你传入的文件路径提取出来的。

当然,上面的脚本大部分代码是在提取最终的SVN版本号,如果你不想知道最终版本号,直接使用 /endrev:"-1"也可以

二、新建 SVN Blame 菜单

在VS界面点击 工具->外部工具->添加

标题:可以自定义,在标题最后用英文括号包含一个 "&B",这样可以使用快捷键。

命令:就是刚才那个脚本的路径

参数:点开后面的黑色三角,依次选择 “项路径”和“当前行”,用空格分开

初始目录:无所谓

如果勾选了使用输出窗口,那么脚本的输出将会在VS的输出窗口展示。

点击:应用->确定

此时打开“工具”菜单,就会出现刚才添加的SVN Blame命令,点击该命令,就会打开Blame窗口,并且定位到你在VS中选定的行。

也可以通过刚才设置的快捷键 Alt + T , B调用该命令。相当方便。

输出窗口也可以展示文件名,行号和最终版本号。

原文地址:https://www.cnblogs.com/tangxin-blog/p/8697278.html