在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 % : %
rem echo %Reversion%
rem /endrev:"-1" is also ok
TortoiseProc.exe /command:blame /path:% /line:% /startrev: /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调用该命令。相当方便。

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

VS 一键调用 SVN Blame的更多相关文章

  1. 【转】Eclipse中一键调用javah生成jni的头文件

    这里定义了一个本地方法jni_test,该方法返回一个String.其中System.loadLibrary是用来加载本地库的(dll或者so). 有了这个类以后,就可以调用javac命令编译,得到E ...

  2. 一键删除.svn文件bat脚本

    用过SVN或CVS版本控制工具的朋友,在享受着它们给我们带来的方便的同时,也许也在为这么一件事情苦恼: 如果某个目录在SVN或CVS版本控制工具的控制之下时.该目录下以及该子孙目录下都会有一个.svn ...

  3. 快看!❤️又一超实用浏览器插件!常用网站自动整合,JSON格式化,CSDN全站去广告!多种工具一键调用。开发者的福音!

    其实这个插件才出来的时候博主也下载了使用过,并没有什么亮点,那时候甚至觉得有点多余,因为CSDN全站去广告啥的,早就安装了油猴脚本,广告?不存在的嘿嘿.. 就在前几天看见CSDN的活动在推荐这款插件, ...

  4. C++ 小工具一键解决SVN Clean Up 失败的问题

    参考文章: 1.http://blog.csdn.net/luochao_tj/article/details/46358145 2.http://blog.csdn.net/segen_jaa/ar ...

  5. PHP中调用SVN命令更新网站方法(解决文件名包含中文更新失败的问题)

    想说写一个通过网页就可以执行 SVN 升级的程序,结果并不是我想得那样简单,有一些眉角需要注意的说. 先以 Apache 的用户帐号执行 SVN checkout,这样 Apache 才有 SVN 的 ...

  6. Scrapyd 改进第二步: Web Interface 添加 STOP 和 START 超链接, 一键调用 Scrapyd API

    0.提出问题 Scrapyd 提供的开始和结束项目的API如下,参考 Scrapyd 改进第一步: Web Interface 添加 charset=UTF-8, 避免查看 log 出现中文乱码,准备 ...

  7. (基于Jenkins + SVN + Ant + Weblogic Server的)应用程序自动(/一键)部署的设想

    一直想实现自动部署,这里说的自动部署,是指点击一个按钮(或定时执行),让计算机将最新的应用程序发布到相应的环境(UAT或PRD)中. 自动部署的意义 自动部署能省去繁琐的人工发布步骤:如配置得当,发布 ...

  8. 使用命令行 Subversion 访问项目源文件(SVN)

    from:http://www.open.collab.net/scdocs/ddUsingSVN_command-line.html.zh-cn 命令行 Subversion 入门 如果您参与的项目 ...

  9. Mac svn使用学习-4-客户端cli命令详解

    客户端cli的使用 WC:Working Copy 你的工作区 将文件或目录版本化,这样下一次提交到存储库的时候,他们就都会被提交上去.能实现版本化的命令有: add 1.import 是否访问存储库 ...

随机推荐

  1. HDU 6463.超级无敌简单题-卡边界的暴力 (“字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛)

    超级无敌简单题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Sub ...

  2. Oracle常用常考集合

    登陆远程服务器 sqlplus scott/tiger@192.168.2.1[:port]/sid [as sysdba] 简单查询 select  table_name from user_tab ...

  3. sqlldr load UTF8 error

    The default length semantics for all datafiles (except UFT-16) is byte. So in your case you have a C ...

  4. angularjs学习笔记2—运行phonecat项目

    如果你去angularjs中文网看它的教程,你会发现一开始它提供了一个phonecat的引导项目,这个项目是angular官方给出的一个类似于demo的教程项目,并配有相应文档,按照这个项目并配合文档 ...

  5. CSU - 1334 -好老师(STL-map用法)

    https://cn.vjudge.net/contest/157163#problem/E #include<map> #include<queue> #include< ...

  6. php elasticsearch 关键词搜索配置

    CURL接口方式调用数据,网络搜索了一下大都不能使用,自己研究了一下. 参数格式按照如下传递: PHP: 'query' => [ "bool" => [ " ...

  7. 【BZOJ 1478】 1478: Sgu282 Isomorphism (置换、burnside引理)

    1478: Sgu282 Isomorphism Description 给 定一个N 个结点的无向完全图( 任意两个结点之间有一条边), 现在你可以用 M 种颜色对这个图的每条边进行染色,每条边必须 ...

  8. cogs 1075. [省常中2011S4] 最短路径问题

    1075. [省常中2011S4] 最短路径问题 ★   输入文件:short.in   输出文件:short.out   简单对比 时间限制:1 s   内存限制:128 MB [问题描述] 平面上 ...

  9. 雅礼集训DAY 6 T1 xmasdag

    感谢gryz的mly大好人再次给我提供了题目和数据. 和昨晚那个题几乎一样,都是x^n最后转化成第二类斯特林数*阶乘*Σ(和路径长度有关的组合数),而因为组合数是可以利用Pascal公式实现O(1)递 ...

  10. python学习第九十天:vue补习2

    Vue 八.重要指令 v-bind <!-- 值a --> <div v-bind:class='"a"'></div> <!-- 变量a ...