Subversionの日だった

今日はSubversionの日でした。

  • サーバー、クライアントのインストール
  • 操作方法の勉強
  • レポジトリの公開

などをやった。
最終形としてはviewcvsでレポジトリを公開して、書き込みアクセスはsvn+sshでという形にします。ネットワーク経由でアクセスする方法は大きく分けて「Apache+mod_dav_svn」または「svnserve」という選択肢がありますが、DebianにApache2が入ってないので後者を選択しました。svnserveは専用のプロトコルTCP/IP上でやり取りするサーバーでいくつかの起動方法がありますが、「inetd経由で起動」することにしました。
Subversionに関してはすばらしい日本語の!ドキュメントがあるのでそれをじっくりと読んで進めていきます。
bluegate.org - このウェブサイトは販売用です! -&nbspbluegate リソースおよび情報
以下、やったことのメモ。

    • -

実はSubversionは以前にインストールしたことがある。
Subversionの導入 - libnitsuji.so
でも使ってなかったのでもう忘れた。
まずはサーバーのインストールから(2度目になる訳だけどそんなことは無視)。

takatoshi@sarge:~$ sudo apt-get update 
takatoshi@sarge:~$ sudo apt-get install subversion

最新版は1.30だけど、
http://pcweb.mycom.co.jp/news/2006/01/06/017.html
多分こっち
Debian -- Details of package subversion in sid
が入ったと思われる。
デフォルトの状態で、anonymousは読み取り専用、認証ユーザーは書き込みOKになっているらしいので、設定は特にしなくていいのだけれど気持ち悪いのでこれだけ設定する(conf/svnserve.conf)。

[general]
password-db = userfile

# anonymous users can only read the repository
anon-access = read

# authenticated users can both read and write
auth-access = write

で、認証はレポジトリのconf/passwdに「ユーザー名 = パスワード」を書くことでもできるのだけれどこれはやらないでSSHでやる。この辺りのことは「6. サーバの設定」を読む、と。

    • -

次は操作方法の勉強。
まずはレポジトリの作成、チェックアウト、コミット、取り消し(revert)などを一通りやってみる。アクセスはローカルからとWindowsTortoiseSVNから。WindowsからSSHで認証をとる方法がよくわからないかったので一時的にconf/passwdを使ってみる。
一方、メインとなるMacはこれ
Fink - Package Database - Package svn-client-ssl (Compelling replacement for CVS - Client (with SSL))
を入れる。

powerbook:~ takatoshi$ sudo fink update
powerbook:~ takatoshi$ sudo fink install svn-client-ssl

すごい勢いでコンパイルなどが始まる。結構時間がかかるが正常に終わった(ほっ・・)。
さっきと同じようなことをやってみる。これはコマンドラインなんだけど、MacなのでGUIが欲しい。
http://www.joshbuhler.com/2005/07/05/setting-up-the-subversion-client-on-mac-os-x/
を見ると、二つくらいあるようなのだけれど今回はパスした。そのうち、本当に必要になったらいれよう。

    • -

最後にレポジトリを公開する。viewcvsを使う。
これかな。
Debian -- Error

takatoshi@sarge:~$ sudo apt-get update 
takatoshi@sarge:~$ sudo apt-get install viewcvs

レポジトリの場所とかいろいろ聞かれるので答える。
CGIはデフォルトのCGIパスに入る。
設定ファイルはviewcvs.confなんだけど、さっき聞かれて答えた内容が反映されてなくてむかつく。手動で適当に編集する。
設定するのは

  • svn_roots
  • default_root
  • address

くらいかな。
で、画像ファイルの場所にAliasを設定するようにhttpd.confを編集しておしまい。
http://takatoshi.dyndns.org/cgi-bin/viewcvs.cgi/

    • -

あとやり残したことが

くらいかな。もうだいぶ疲れた。全部で6時間くらい。

    • -

そもそものきっかけをくれたのは
SVN レポジトリの公開: blog.bulknews.net
です。尊敬。