彷徨えるフジワラ

年がら年中さまよってます

CVSNT 事情

Windows ネイティブな cvs コマンド」としては、CVSNT が有名です。

CVSNT は現在、March Hare Software 社によって開発が継続されていますが、基本的に「有償の商用版」または「期間限定の試用版」のみが配布されている状況です。

幸いなことに、TortoiseCVS には March Hare Software から提供を受けた CVSNT が同梱されているので、TortoiseCVS のインストールにより、Windows ネイティブな cvs コマンドを入手できるのですが、TortoiseCVS 同梱の CVSNT 版 cvs コマンドは、ローカルディスク上に新規リポジトリを作成することができません。

例えば cvs -d C:\ABS\PATH\TO\REPO init を実行して、"c:\ABS\PATH\TO\REPO" 配下に新規リポジトリを作成しようとした場合、以下の様なエラーで実行が中断されてしまいます。

Couldn't open default trigger library: No such file or directory

この挙動は、March Hare Software が TortoiseCVS に提供している CVSNT が、「クライアント用途専用」にビルドされたものであることが原因であるらしいのです。

バグ管理情報を見る限りでは、非 stable 版である TortoiseCVS 1.11.3 には、サーバ機能込みでビルドされた CVSNT が同梱されているとのことですが、実際に TortoseCVS 1.11.3 をインストールして確認した範囲では:

という残念な状況でした。

また、最新の stable 版に提供されている CVSNT も、再び「クライアント用途専用」になっているとのこと。

TortoiseCVS のメイン開発者が「March Hare の人達は、商用版の CVSNT サーバを売りたいみたいですね」(意訳)と発言しているぐらいなので、おそらくこの状況は変わらないんでしょうねぇ。

:pserver::ext: (RSH/SSH) プロトコルによるネットワーク経由でのリポジトリアクセスは可能なので、共有サーバ上にリポジトリを保持する運用形態であれば、実質的には支障が無い (この手の共有サーバは UNIX 系 OS でしょうし) とは言えますが、Mercurialhg convert 機能のテストに使うことを考えていたので、ローカルリポジトリの初期化ができないというのは、個人的にはちょっと痛いです。

ネット上に転がっている野良インストーラの中には、サーバ機能込みの CVSNT を含むものもあると思いますが、そこまでするのはちょっとなぁ……


※ 2015-01-21 追記: 以下のような情報を頂きました。

リンク先で提示されている gnu.org の ftp サイトで、1.11.x 系と 1.12.x 系の Windows 向け cvs バイナリが公開されています。

最新版の 1.12.13a は末尾の "a" が気になったので(笑)、とりあえず 1.12.12 を試してみたところ、Windows 形式のパス指定によるローカルリポジトリの初期化 (cvs init) が、問題なく実施できることを確認できました。

これなら、Mercurial のテスト的には使えるかも?

なお、まだ挙動検証はしてはいませんが、cvs --version 出力によると "(client)" 設定でビルドされているっぽいので、もしかしたら :pserver: とか :ext: での連携「先」としては使えないのかもしれません。