在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 1002.A + B Problem II-数组模拟-大数相加

    A + B Problem II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  2. ZOJ 3498 Javabeans

    脑筋急转弯. 如果是偶数个,那么第一步可以是$n/2+1$位置开始到$n$都减去$n/2$,后半段就和前半段一样了. 如果是奇数个,那么第一步可以是$(n+1)/2$位置开始到$n$都减去$(n+1) ...

  3. linux文件简单操作

    1.vim常用快捷键 dd/ndd 删除1行/删除n行 yy/nyy  复制1行/复制n行 p 粘贴 u 撤销 dw/ndw 删除一个单词/删除n个单词 G /nG  到一行尾/第n行尾 :!+命令  ...

  4. PDF文档盖章

    概述 在pdf文档的最后一页,合适位置,添加印章图片. maven依赖 <dependency> <groupId>com.itextpdf</groupId> & ...

  5. 定位所用的class

    方案 为解决类冲突,我们可以使用下述的方案定位一个class所在的位置 ClassName. package cn.j2se.junit.classpath; import static org.ju ...

  6. Shiro源码分析之Subject和SecurityManager

    Subject 毫无疑问,Subject是Shiro最重要的一个概念. “Subject”只是一个安全术语,意味着应用程序用户的特定于安全性的“视图”.Shiro Subject实例代表单个应用程序用 ...

  7. 图形管线之旅 Part 1

    原文:<A trip through the Graphics Pipeline 2011> 翻译:往昔之剑   转载请注明出处   你可以找到很多PC图形栈的功能描述,但是通常却不明所以 ...

  8. 解决cordova命令行方式下build或者run的时候报错问题

    phonegap3.0之后就将项目的生成方式做了很大的更改,原来是在eclipse里面修改生成并编译运行,但是3.0之后它的目录结构发生了很大变化,只修改主目录下面的index.html如果不buil ...

  9. luogu P2254 [NOI2005]瑰丽华尔兹

    题目链接 luogu P2254 [NOI2005]瑰丽华尔兹 题解 为什么我我我不放放放bzoj的链接呢? 因为打的暴力啊,然后bzojT了呀QAQQQQQ(逃 然后luogu竟然过了呀呀呀 dp[ ...

  10. BZOJ 3127 [Usaco2013 Open]Yin and Yang(树点分治)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3127 [题目大意] 给出一棵01边权树,求存在多少条路径,使得路径上0和1的数量相同, ...