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 % : %
- 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的更多相关文章
- 【转】Eclipse中一键调用javah生成jni的头文件
这里定义了一个本地方法jni_test,该方法返回一个String.其中System.loadLibrary是用来加载本地库的(dll或者so). 有了这个类以后,就可以调用javac命令编译,得到E ...
- 一键删除.svn文件bat脚本
用过SVN或CVS版本控制工具的朋友,在享受着它们给我们带来的方便的同时,也许也在为这么一件事情苦恼: 如果某个目录在SVN或CVS版本控制工具的控制之下时.该目录下以及该子孙目录下都会有一个.svn ...
- 快看!❤️又一超实用浏览器插件!常用网站自动整合,JSON格式化,CSDN全站去广告!多种工具一键调用。开发者的福音!
其实这个插件才出来的时候博主也下载了使用过,并没有什么亮点,那时候甚至觉得有点多余,因为CSDN全站去广告啥的,早就安装了油猴脚本,广告?不存在的嘿嘿.. 就在前几天看见CSDN的活动在推荐这款插件, ...
- C++ 小工具一键解决SVN Clean Up 失败的问题
参考文章: 1.http://blog.csdn.net/luochao_tj/article/details/46358145 2.http://blog.csdn.net/segen_jaa/ar ...
- PHP中调用SVN命令更新网站方法(解决文件名包含中文更新失败的问题)
想说写一个通过网页就可以执行 SVN 升级的程序,结果并不是我想得那样简单,有一些眉角需要注意的说. 先以 Apache 的用户帐号执行 SVN checkout,这样 Apache 才有 SVN 的 ...
- Scrapyd 改进第二步: Web Interface 添加 STOP 和 START 超链接, 一键调用 Scrapyd API
0.提出问题 Scrapyd 提供的开始和结束项目的API如下,参考 Scrapyd 改进第一步: Web Interface 添加 charset=UTF-8, 避免查看 log 出现中文乱码,准备 ...
- (基于Jenkins + SVN + Ant + Weblogic Server的)应用程序自动(/一键)部署的设想
一直想实现自动部署,这里说的自动部署,是指点击一个按钮(或定时执行),让计算机将最新的应用程序发布到相应的环境(UAT或PRD)中. 自动部署的意义 自动部署能省去繁琐的人工发布步骤:如配置得当,发布 ...
- 使用命令行 Subversion 访问项目源文件(SVN)
from:http://www.open.collab.net/scdocs/ddUsingSVN_command-line.html.zh-cn 命令行 Subversion 入门 如果您参与的项目 ...
- Mac svn使用学习-4-客户端cli命令详解
客户端cli的使用 WC:Working Copy 你的工作区 将文件或目录版本化,这样下一次提交到存储库的时候,他们就都会被提交上去.能实现版本化的命令有: add 1.import 是否访问存储库 ...
随机推荐
- B. Black Square(字符串)
B. Black Square time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...
- 洛谷P4609 [FJOI2016]建筑师(第一类斯特林数+组合数)
题面 洛谷 题解 (图片来源于网络,侵删) 以最高的柱子\(n\)为分界线,我们将左边的一个柱子和它右边的省略号看作一个圆排列,右边的一个柱子和它左边的省略号看作一个圆排列,于是,除了中间的最高的柱子 ...
- Codeforces Beta Round #14 (Div. 2) Two Paths (树形DP)
Two Paths time limit per test 2 seconds memory limit per test 64 megabytes input standard input outp ...
- Oracle REGEXP
ORACLE中的支持正则表达式的函数主要有下面四个: 1,REGEXP_LIKE :与LIKE的功能相似 2,REGEXP_INSTR :与INSTR的功能相似 3,REGEXP_SUBSTR :与S ...
- Codeforces 724E Goods transportation(最小割转DP)
[题目链接] http://codeforces.com/problemset/problem/724/E [题目大意] 每个城市有pi的物品可以运出去卖,si个物品可以买, 编号小的城市可以往编号大 ...
- [xsy3241]暴风士兵
题意:一个血量为$h$的人,它会被攻击$n$次,第$i$次有$p$的概率$-1$滴血(每次的$p$不同),问每次攻击后他的血量期望,强制在线 若一个人被扣了$i$滴血的概率为$p_i$,那么记多项式$ ...
- JavaScript 匹配字符串偶数位置的字符 及匹配 $ 符号
已知一个字符串#####,现需要替换偶数位置的#为&. function replaceDemo(){ var s = "1#2#3#4#5#"; var regex = ...
- NServiceBus入门:发布事件(Introduction to NServiceBus: Publishing events)
原文地址:https://docs.particular.net/tutorials/intro-to-nservicebus/4-publishing-events/ 侵删. 这个教程到目前为止,我 ...
- 为Go语言GC正名-20秒到100微妙的演变史
http://blog.csdn.net/erlib/article/details/51850912 https://blog.twitch.tv/gos-march-to-low-latency- ...
- Android内存优化14 内存泄漏常见情况5 特殊对象造成的内存泄漏 WebView内存泄漏
WebView造成内存泄露 关于WebView的内存泄露,因为WebView在加载网页后会长期占用内存而不能被释放,因此我们在Activity销毁后要调用它的destory()方法来销毁它以释放内存. ...