0
1

【TortoiseSVN】送るメニューに「Copy URL to clipboard」を追加する

Last updated at Posted at 2024-08-01

概要

TortoiseSVNはファイルパスがURLで管理されていますが、このURLをWindowsのエクスプローラー上から取得する方法を紹介します。

URLの取得はTortoiseSVN標準の右クリックメニューにもあるのですが、こちらはURLエンコードされた形式でコピーされます。

TortoiseSVN標準の右クリックメニュー

TortoiseSVN の右クリックメニューにある「Copy URL to clipboard」を利用した場合
file:///E:/data/Documents/TortoiseSVN/trunk/%E6%96%B0%E3%81%97%E3%81%84%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%20%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88.txt

これだと使いづらいので、PowerShellスクリプトを利用して新しく「Copy SVN URL to clipboard」を作成してURLデコードされた形式でコピーします。

本記事で紹介する「Copy URL to clipboard」を利用した場合
file:///E:/data/Documents/TortoiseSVN/trunk/新しいテキスト ドキュメント.txt

実施環境

  • Windows10 64bit
  • TortoiseSVN 1.14.29673

事前準備

TortoiseSVNのCLIが利用できることを確認

コマンドプロンプトでもPowerShellでも良いので、下記のコマンドを実行します。

svn --version

下記のようにバージョン情報が取得できればOK。

TortoiseSVNのCLIが利用できない場合

上記手順でバージョン情報が取得できない場合は先にCLIをインストールする必要があるため、TortoiseSVNをインストールした際に利用したインストーラを利用します。

  • TortoiseSVN-1.14.6.29673-x64-svn-1.14.3.msi
    ※バージョンは各自のものでOK

①TortoiseSVNのCLIインストール

下記の手順でCLIをインストールします。

下記がCLIのパッケージとなるため、他のパッケージはインストールしなくても大丈夫です。

②CLIのパスを通す

[Windows]+[PAUSE BREAK]でシステム画面を開く

環境変数にはユーザー環境変数システム環境変数がありますが、どちらに追加しても大丈夫です。

追加するパスは下記とは限らず、各自でTortoiseSVNをインストールしたパスとなるため注意。

参考値
C:\Program Files\TortoiseSVN\bin

コマンドプロンプトやPowerShell等を開き、確認コマンドを実行。

svn --version

CLIをインストールする以前にコマンドラインツールを開いていた場合、一度クローズしてから起動する必要があります。

事前準備は以上で完了です。

実装手順

手順は大まかに次のとおりです。

1. PowerShellスクリプト(copyUrl2Clipboard.ps1)の作成
2. 作成したPowerShellスクリプトのショートカットを作成
3. 作成したショートカットをSendToディレクトリに配置

順に説明していきます。

1. PowerShellスクリプト(copyUrl2Clipboard.ps1)の作成

下記のコードをコピーしてPowerShellスクリプトを作成します。

copyUrl2Clipboard.ps1
Add-Type -AssemblyName System.Web
$OutputEncoding = [Console]::OutputEncoding

$url = svn info --show-item url $Args[0]
[System.Web.HttpUtility]::UrlDecode("$url",[Text.Encoding]::GetEncoding("utf-8")) | clip

2. 作成したPowerShellスクリプトのショートカットを作成

作成したショートカットの名称が後の右クリックメニューの名称になります。
本記事では「Copy URL to clipboard」とします。

作成したショートカットのプロパティを開き、リンク先の先頭に下記を追記します。

powershell -ExecutionPolicy RemoteSigned -File {"元のパスをダブルクォーテーションで囲う"}

3. 作成したショートカットをSendToディレクトリに配置

ファイルを指定して実行([Windows]+[R])にて、「shell:sendto」と入力してOKを押下。

SendToディレクトリに作成したショートカットを配置する。

以上で実装は完了です。

使い方

エクスプローラを再起動すると右クリックの送るメニューに「Copy URL to clipboard」が表示されます。

TortoiseSVNのチェックアウトしたファイルに対してこのメニューを押下すると、PowerShellのターミナル画面が開き、クローズされるとURLがコピーされます。

コピーには数秒かかり、ターミナルを非表示で実行するように制御するといつコピーされたかわからなくなるため、あえて表示するようにしています。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1