3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援→開発戻り浦島太郎状態の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。

LinuxでSubVersionを構築しEclipse Subversive から使う

ソース管理のSubVersionLinux(CentOS5)での構築方法です。

SubVersionApache のモジュールして動くようですね。

(Apacheは元から入ってるパッケージ管理されてるものを使うこととします。)

まず、yumSubVersion モジュールをインストールします。

# yum -y install subversion mod_dav_svn

次に SubVersion の設定ファイルを編集します。

とりあえず下記のような設定にしてみました。

vi /etc/httpd/conf.d/subversion.conf

DAV svn

#SVNPath /var/www/svn (SVNPathは1個のリポジトリだけを指定する)

SVNParentPath /var/www/svn (SVNParentPathは複数のリポジトリがある時その親ディレクトリを指定)

SVNAutoversioning on

Order deny,allow (ここからアクセス権。指定したIPからのみ通信許可)

Deny from all

Allow from 127.0.0.1

Allow from 192.168.0.0/24

# Limit write permission to list of valid users.

# Require SSL connection for password protection.

# SSLRequireSSL

AuthType Basic (認証方式。このあたりはApacheの普通のベーシック認証と同じ)

AuthName "Authorization Realm"

AuthUserFile /var/www/svn/.htpasswd (パスワードファイルを指定)

Require valid-user

次にベーシック認証のユーザを作成します。作成方法はApacheベーシック認証おなじみのhtpasswdを使います。

htpasswd -b -c /var/www/svn/.htpasswd hoge passwd (初回時のみ -c が必要)

svnadmin コマンドを使ってリポジトリの作成を行います。

# svnadmin create /var/www/svn/testrepo

chown -R apache:apache /var/www/svn/testrepo/ (所有者をapacheを動かしてるユーザにします)

次にクライアント側の準備です。

今回は Eclipse3.6 で Subversive プラグインを入れて使うことにします。

Eclipseを起動し、メニューバーの Help → Install New Software でダイアログを起動します。

Work with: に http://www.polarion.org/projects/subversive/download/eclipse/2.0/update-site/ を追加すると、Subversion SVN Connectors を選択してインストールします。

これでEclipseを再起動し、パースペクティブから SVN Repositories を選択します。

New Repository Location でリポジトリ設定ダイアログが開くのでそこで設定をします。

この時ハマったのが URL でした。

この URL ではリポジトリのパスまで入れないといけないのです。上記の設定だと下記のイメージのように設定する必要がります。

WEBブラウザでリポジトリのURLを叩くと中身を見ることができるので、Subversion の生存確認につかるかもしれません。

こう見ると構築自体はあっさりできます。

参考:

バージョン管理システム構築(Subversion) - CentOSで自宅サーバー構築 構築方法です。

Subversiveプラグイン - EclipseWiki EclipseSubversiveプラグインについてです。

Subversionメモ/SVNPathとSVNParentPath - Piroshiki PukiWiki

Linux/Subversion/yumからインストール - MinacoWiki

SubversionとTracでファイル管理の“迷宮”から脱出 (1/4) - @IT

補足

上記Subversion設定ファイル(/etc/httpd/conf.d/subversion.conf)で、 としてましたが、これは読み取りにはアクセス権は必要ないけど、コミットには必要という意味だそうです。

ですので、リポジトリのRead,Writeに認証を描けるには、下記のように、ディレクティブを無しにしてやればいいようです。

DAV svn

#SVNPath /var/www/svn (SVNPathは1個のリポジトリだけを指定する)

SVNParentPath /var/www/svn (SVNParentPathは複数のリポジトリがある時その親ディレクトリを指定)

SVNAutoversioning on

Order deny,allow (ここからアクセス権。指定したIPからのみ通信許可)

Deny from all

Allow from 127.0.0.1

Allow from 192.168.0.0/24

# Require SSL connection for password protection.

# SSLRequireSSL

AuthType Basic (認証方式。このあたりはApacheの普通のベーシック認証と同じ)

AuthName "Authorization Realm"

AuthUserFile /var/www/svn/.htpasswd (パスワードファイルを指定)

Require valid-user