恥ずかしながらシンボリックリンクというものはUnix専門と思っていてWinodwsにあるのを知りませんでした.例えば会社ではバージョン管理システムでSubversionを使用しています.Subversionはサーバーにあるリポジトリから任意のフォルダを指定して作業コピーとしてチェックアウトすることができます.このためDITA-OTのプラグインを作っていて、頻繁にDITA-OTがバージョンアップされて、お客様の環境に合わせていくつものDITA-OTを取りそろえておかねばならない場合でも、[DITA-OT]/pluginsに目的のプラグインのフォルダをチェックアウトすれば事足ります.(もちろんディスク領域は取りますが)
ところがGitHubのようなバージョン管理システムだとこのよなことができません.クライアントにあるのはあくまでもローカルリポジトリで、センターのリポジトリをクローンしたものです.このようなリポジトリでDITA-OTのプラグインを開発する場合、リポジトリにはプラグインのフォルダだけではなく、README.MDとかテストデータとかいろいろなファイルがあって、[DITA-OT]/pluginsにローカルリポジトリとして作ることはできないからです.(たぶんDITA-OTがおかしくなってしまう)
一体世の中の人はどうやっているのか?とStackoverflowで質問してみたら、シンボリックリンクを用いるのと、選択的にGitHubからローカルリポジトリをクローンする方法があることを教えてもらいました.結局のところ後者は他のプラグインもGitHubから引っ張ると競合してしまうためダメなことがわかったので、シンボリックリンクの方を試してみました.
まず会社のPDF5-MLプラグインは通常D:\My_Documents\GitHub\pdf5-mlにローカルリポジトリがあります.ここにcom.antennahouse.pdf5.mlフォルダが存在します.以下はD:\DITA-OT\dita-ot-3.0\pluginsにシンボリックリンクを作成する様子です.Wondows10でかっこをつけてWindows Power Shellを入れてしまったので、ちょっとシンボリックリンクを作るコマンドのmklinkの叩き方が通常のDOS窓(コマンドプロンプト)とは異なります.あと管理者権限が必要です.
今までDITA-OTがバージョンアップするごとにプラグインをローカルリポジトリからコピーしてきていましたが、たまにプラグインの修正がある場合、そこの[DITA-OT]\pluginsで修正をかけて、ローカルリポジトリにコピーしなおしてというSubversionでは考えられないちょっと危険なことをやっていました.
しかしシンボリックリンクを使えば、D:\DITA-OT\dita-ot-3.0\pluginsのプラグインを直せば、それは実体がローカルリポジトリにあるので、そのような危険な手動コピーをせずに済みます.というわけでWindowsのシンボリックリンクは結構便利な機能です.