VSCodeに拡張機能で「TortoiseSVN」を追加しました。
これを使うとVSCode上でSVNが使えてとても便利です。コマンドの種類はこれだけあります。
特に差分表示がしたかったので、「Diff」を使ってみたのですが、作業コピーと最新リビジョンの差分でした。やりたかったのは最新リビジョンとそのもう一つ前の差分なのです。そこでVSCodeの拡張機能のソースを見てみる事にしました。以下のようにしたら実現出来ました。
まず拡張機能のソースがどこにあるか、、ですが私の場合は以下にありました。
C:\Users\”yourname”\.vscode\extensions\fantasytyx.tortoise-svn-0.1.1
この中にある以下ファイルにコマンドを追加します。
\out\src\extension.js
package.json
修正前
'use strict'; // The module 'vscode' contains the VS Code extensibility API // Import the module and reference it with the alias vscode in your code below var vscode = require('vscode'); var child_process = require('child_process'); var path = require('path'); var fs = require('fs'); var glob = require('glob'); var DIRECTORY_ACTIONS = ['update', 'commit', 'revert', 'cleanup', 'log', 'add', 'diff', 'lock', 'unlock']; var FILE_ACTIONS = ['update', 'commit', 'revert', 'cleanup', 'log', 'add', 'blame', 'diff', 'lock', 'unlock'];
FILE_ACTIONSにコマンド「prevdiff」を追加します。
修正後
'use strict'; // The module 'vscode' contains the VS Code extensibility API // Import the module and reference it with the alias vscode in your code below var vscode = require('vscode'); var child_process = require('child_process'); var path = require('path'); var fs = require('fs'); var glob = require('glob'); var DIRECTORY_ACTIONS = ['update', 'commit', 'revert', 'cleanup', 'log', 'add', 'diff', 'lock', 'unlock']; var FILE_ACTIONS = ['update', 'commit', 'revert', 'cleanup', 'log', 'add', 'blame', 'diff', 'lock', 'unlock', 'prevdiff'];
package.json
以下箇所に
"main": "./out/src/extension", "contributes": { "commands": [ ~ { "command": "file tortoise-svn prevdiff", "title": "File: SVN prevdiff" },
VSCodeを再起動したらコマンドが使えるようになります。
ちなみに、「prevdiff」は作業コピーと最新と1つ前の差分、のようですね。「最新リビジョンとそのもう一つ前の差分」とはちょっと違うけど、私のやりたかった事は出来たのでこれで良しとします。
コメント