タグアーカイブ Subversion

Subversionの導入(Debian etch)

subversionのインストール
apt-get update
apt-get install subversion

DAVを使用する場合、必要なモジュールをインストール

apt-get install libapache2-svn

文字化け対策用のモジュールをインストール

apt-get install libapache2-mod-encoding

svnのユーザ作成

# useradd svn
# passwd svn

/etc/inetd.confに1行追加する

svn stream tcp nowait svn /usr/sbin/tcpd /usr/bin/svnserve -i

svnディレクトリの作成

# mkdir /var/svn
# svnadmin create /var/svn

svnフォルダのパーミッションを変更

   # chown -R www-data:www-data /var/svn
   # chmod -R og+w /var/svn

WEB-DAV接続時のパスワードを設定する

htpasswd -c /var/svn/.svnpasswd mydavuser

/etc/apache2/mods-enabled/dav_svn.confの編集

<Location /svn>
DAV svn
SVNParentPath /home/groups/test/svn

Options Indexes
Order allow,deny
allow from all
AuthType Basic
AuthName "Subversion repository"
AuthUserFile "/home/groups/test/.svnpasswd"
Require valid-user
</Location>

/etc/apache2/apache2.confを編集

日本語文字化けを回避

LanguagePriority en da nl et fr de el it ja ko no pl pt pt-br ltz ca es sv tw
↓
LanguagePriority ja en da nl et fr de el it ko no pl pt pt-br ltz ca es sv tw

※この設定を忘れると日本語名のファイルを扱ったときに文字化けする。

Apacheを再起動

/etc/init.d/apache2 restart

これで、下記のようにブラウザに設定したURLを指定してアクセスできればOK。 上記のインストール例だと、 http://(マシン名 or IPアドレス)/svn/myproject

/var/svn/conf/svnserve.confの編集

[general]
anon-access = none
auth-access = write
password-db = passwd

/var/svn/conf/passwdの編集

[users]
svn = 設定したパスワードを入力

initdの再起動

/etc/init.d/openbsd-inetd restart

Subversionの導入(Debian etch)

Debian 4.0 etchでSubversion

WebDAVでSubversionを利用することにしました。

OSのインストールが済み、ひと通りの設定が済んだら、
Apacheをインストールします。

#Apacheのインストール

apt-get install apache2~

次に、Subversionをインストールします。

# Subversionのインストール

apt-get install subversion~

Subversionをインストールしたら、リポジトリの作成を行います。

# リポジトリ用フォルダを作成

mkdir /home/groups/test/svn~

# リポジトリの作成 (形式はfsfsで作成)

svnadmin create --fs-type fsfs /home/groups/test/svn~

# 所有者と所有グループを www-dataに変更する。

# ※apache2をapt-getでインストールしたときにApacheのUserとGroupがwww-dataになるため

chown -R www-data:www-data /home/groups/test/svn~

次に、Webdavでsubversionにアクセスするための設定を行います。

# Webdavでsubversionにアクセスするために必要なモジュールをインストールをインストール

apt-get install libapache2-svn~

# 文字化け対策用のモジュールをインストール

apt-get install libapache2-mod-encoding~

# パスワードファイルの作成・設定

# ※コマンドを打つと、パスワード入力、確認入力の計2回パスワード入力を促されます

htpasswd -c /home/groups/test/.svnpasswd hogehoge~

# /etc/apache2/mods-enabled/dav_svn.confの編集

vi /etc/apache2/mods-enabled/dav_svn.conf~

DAV svn~
SVNPath /home/groups/test/svn~

Options Indexes~
Order allow,deny~
allow from all~
AuthType Basic~
AuthName "Subversion repository"~
AuthUserFile "/home/groups/test/.svnpasswd"~
Require valid-user~

↑ファイルの最後に追記する
------------------------------------------------

# /etc/apache2/apache2.confを編集~
# 日本語文字化けを回避~
LanguagePriority en da nl et fr de el it ja ko no pl pt pt-br ltz ca es sv tw~
↓~
LanguagePriority ja en da nl et fr de el it ko no pl pt pt-br ltz ca es sv tw~

#※この設定を忘れると日本語名のファイルを扱ったりすると文字化けをおこすので注意して下さい。

# Apacheを再起動~
/etc/init.d/apache2 restart

これで、下記のようにブラウザに設定したURLを指定してアクセスできればOKです。
上記のインストール例だと、
http://(マシン名 or IPアドレス)/svn/test

ちなみに、リポジトリを新たに作成する場合は、
上記のリポジトリの作成手順から先の作業を毎回行う必要があります。
さすがにそれは面倒なので、リポジトリの追加処理を自動化するシェルを作成しました。 よかったら参考にしてみて下さい。

 

svn.sh

#!/bin/sh~

##############################~
# 使用方法~
# sh svn.sh [リポジトリ名]~
##############################~

# リポジトリ用のフォルダを作成~
mkdir /home/groups/$1~
mkdir /home/groups/$1/svn~

# リポジトリの作成~
svnadmin create --fs-type fsfs /home/groups/$1/svn~

# パスワードファイルの作成・設定~
htpasswd -bc /home/groups/$1/.svnpasswd admin admin~

# /etc/apache2/mods-enabled/dav_svn.confの編集~
cd /etc/apache2/mods-enabled~
echo ""  >> dav_svn.conf~
echo ""  >> dav_svn.conf~
echo "########################"  >> dav_svn.conf~
echo "# $1"  >> dav_svn.conf~
echo "########################"  >> dav_svn.conf~
echo "<Location /svn/$1>"  >> dav_svn.conf~
echo "  DAV svn"  >> dav_svn.conf~
echo "  SVNPath /home/groups/$1/svn"  >> dav_svn.conf~
echo ""  >> dav_svn.conf~
echo "  Options Indexes"  >> dav_svn.conf~
echo "  Order allow,deny"  >> dav_svn.conf~
echo "  allow from all "  >> dav_svn.conf~
echo "  AuthType Basic"  >> dav_svn.conf~
echo "  AuthName \"Subversion repository\""  >> dav_svn.conf~
echo "  AuthUserFile \"/home/groups/$1/.svnpasswd\""  >> dav_svn.conf~
echo "  Require valid-user"  >> dav_svn.conf~
echo "</Location>"  >> dav_svn.conf~
echo ""  >> dav_svn.conf~

# Apacheを再起動~
/etc/init.d/apache2 restart~