PuTTYがソースコード管理をCVSからSubversionに移行したそうですが、 どうも敷居が高そうな気がして手を出せずにいました。何だかWebDAVを使ってるとかで外に公開しちゃいそうだとか、 Windowsで動くGUIのクライアントがないとか。しかしそれらが全て誤解、もしくは古い情報だと言うことが分かりました。
まずWebDAVを使ってるので外に公開しちゃいそうという点。これは完全な私の誤解でした。 SSH接続でならCVSと同じようにサーバ側でデーモンプロセスを立ち上げることなく運用できます。
またWindowsで動くGUIがないと思いこんでいたのですがTortoiseSVNというエクスプローラーの右クリックメニューを拡張するものがあり、 しかもこれ日本語化パックも既に公開されています。 WinCVSのような独自プログラムではなく日頃から使っているエクスプローラーから操作できるのは結構嬉しいかも知れません。
導入手順はまずサーバ側から。まずはsubversionのインストール
% apt-get install subversion subversion-devel subversion-tools
でOKでした。apt-getが使えない人は適宜インストールしてください。
次にリポジトリの作成をします。これにはsvnadminというプログラムを使います。
% svnadmin create ~/svnroot
~/svnrootのところは適当にリポジトリを作成したい場所を指定してください。
サーバ側でやるべきことはこれぐらいです。あとはクライアントでのインストール、および設定です。
クライアントには前述の通りTortoiseSVNを使います。 NT4/Win2k/XP向けのモジュールと98/Me向けのモジュールがありますので気をつけて自分の使っているOS用のものをダウンロードしましょう。
それから日本語化パックもついでにダウンロードしておきましょう。Japanese Language Packという奴です。
それからこれらをインストールします。といっても実行ファイルを実行するだけです。
さてTortoiseSVNの設定ですがエクスプローラーの適当なフォルダで右クリックすると、 TortoiseSVNというメニューが増えていると思います。 これのサブメニューの中にSettingsという項目がありますのでこれを選びます。
最初に現れる画面にLanguageという項目があると思いますが、 日本語化パックを入れていればここで日本語が選択できるようになっているはずです。日本語を選択してまずはOKを押しましょう。 すると次からはTortoiseSVNのサブメニューが日本語になっていると思います。
さてここでは先ほど作っておいたリポジトリにアクセスするためにSSH接続を使います。
そのためにPuTTYのコンソール版plink.exeTortoiseのSSHクライアントTortoisePlink.exe(※)を呼び出すように設定しておきます。
※TortoiseSVNのインストールディレクトリ\binにあります。
先ほどと同じようにTortoiseSVNの設定ダイアログを出してネットワークのタブを開きましょう。
SSHクライアントを指定できるようになっているはずです。ここにplink.exeTortoisePlink.exeのフルパスを指定します。
これでSSH接続出来るようになりました。あ、もちろん普通にPuTTYで接続できるという前提ですが。
さていよいよ先に作っておいたリポジトリからチェックアウトします。チェックアウト先のフォルダを作成し、 そこで右クリックメニューからチェックアウトを選択します。
そこで出てくるダイアログでリポジトリのURLを指定します。ここでは先ほど作成したリポジトリを指定するのですが、 SSH接続するので以下のように指定します。
svn+ssh://yebisuya.dip.jp/home/sugoroku/svnroot
これで先ほど作ったリポジトリからチェックアウトできました。
まぁ先ほど作ったリポジトリには何も入れていないので肝心のファイルは一つもないと思いますが、 チェックアウトしたディレクトリにファイルをコピーし追加していってください。あとはCVSとそう変わらないと思います。
ただちょっと不満な点があります。plink.exeのコンソールウィンドウが表示されてしまっています。
WinCVSでは表示されなかったのに、と思ったんですがそれは単に私がソースに手を入れて表示しないようにしていただけでした。
でも標準入出力を使っているのでコンソールプログラムにするのは必須だし、TortoiseSVN側で表示しないように出来ないかなぁ。
ソース見てみようかな。
TortoisePlink.exeというplink.exeを改造してTortoiseSVN専用にしたものが標準で付属していました。そちらを指定すれば、コンソールウィンドウが開いてうざったい、なんてことはなくなりました。ベースが0.55のようなのでごった煮版に差分を取り込んだやつを追加してみようかな。
既存のCVSからのコンバートはここに書いてあった鵜飼さんの解説ページを参考にしました。
> svn co http://svn.collab.net/repos/cvs2svn/trunk cvs2svn > cvs2svn/cvs2svn -s svnroot --encoding=Shift_JIS --use-cvs cvsroot
今までCVSでやっていたコミットと同時にWebで公開しているドキュメントも更新する仕組みはSubversionでもリポジトリを作ったディレクトリにhooks/post-commitというスクリプトファイルを作成することで可能でした。コミット完了後にこのpost-commitが実行されますので、この中でドキュメントが更新されるように記述します。
#!/bin/sh svn update /var/www/html /var/www/cgi-bin
使ってみてちょっと気になったのはPuTTYのようにチェックアウトしたディレクトリ内に中間ファイルを作成するような場合にエクスプローラーの表示更新が頻繁に行われるため、エクスプローラーが固まったようになることがありました。このような場合にはコンパイルを走らせる前に別のディレクトリを表示させておいた方が良さそうです。
sshリモート上のレポジトリに
tortoiseSVNで開く背するのがうまく行かなく困っていました.
このページを読んで
plink.exeではなくTortoisePlink.exeを使うということを知り,
試したところうまく行きました.
ありがとうございました.