2004年12月5日 ()

Subversion

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のようにチェックアウトしたディレクトリ内に中間ファイルを作成するような場合にエクスプローラーの表示更新が頻繁に行われるため、エクスプローラーが固まったようになることがありました。このような場合にはコンパイルを走らせる前に別のディレクトリを表示させておいた方が良さそうです。

投稿者 双六 : 2004年12月05日 04:03 | このエントリーのトラックバックURL
※ゑBLOGではこのブログへのリンクを含まないトラックバックを拒否しています。また、そのチェックのためトラックバックの送信中にタイムアウトを起こす可能性があります。トラックバックの送信に失敗したように見えても、しばらく待つと送信に成功していることがありますので、リロードするなどして確かめていただきますようお願いします。
トラックバック
ToDO from http://www.akutoku.com/pukiwiki/pukiwiki.php?ToDO
アンチスパムエンジン: SpamAssassin (spamassassin) http://www.tanu.org/~sakane/doc/public/...
2007-05-21 from http://d.hatena.ne.jp/k_chiba/20070521
[SVN][SSH] TortiseSVNでSSH接続する方法。 そういえばSSH接続したことなかったなあ。 http://yebisuya.dip.j...
[mercurial]windows の mercurial で ssh と仲良くする from http://d.hatena.ne.jp/buzztaiki/20081104/1225822487
為の覚え書き。 windows の場合 putty の plink を使うんだけど、pagent と一緒に使わないと何か入力しなきゃいけないときに、なん...
コメント

sshリモート上のレポジトリに
tortoiseSVNで開く背するのがうまく行かなく困っていました.
このページを読んで
plink.exeではなくTortoisePlink.exeを使うということを知り,
試したところうまく行きました.
ありがとうございました.

投稿者 名無し : 2005年05月22日 21:43

look here ゑBLOG: Subversion

投稿者 cheap custom mlb jerseys : 2016年11月05日 14:24

look here ゑBLOG: Subversion

投稿者 cheap custom mlb jerseys : 2016年11月05日 14:24

look here ゑBLOG: Subversion

投稿者 cheap custom mlb jerseys : 2016年11月05日 14:24

look here ゑBLOG: Subversion

投稿者 cheap custom mlb jerseys : 2016年11月05日 14:24

look here ゑBLOG: Subversion

投稿者 cheap custom mlb jerseys : 2016年11月05日 14:24
コメントする









名前、アドレスを登録しますか?