Subversionリポジトリのセットアップ

Subversionは、管理対象のファイルをリポジトリと呼ばれるデータベースで一元管理します。
このセクションでは、SVN環境セットアップの方法の一例として、svnserveを使う方法について紹介します。

覚え書き
以下の例では CentOS 7 Linux 3.10.0-693.2.2.el7.x86_64 を使用しています。

SVNのインストール

subversionパッケージを入手します。

yum update
yum install subversion

リポジトリの作成

svnadminでリポジトリを作成します。

mkdir -p /svn/repos
svnadmin create/svn/repos/repo1

ディレクトリの権限を変更します。

chmod -R 777 /svn/repos

/etc/sysconfig/svnserve から、svnserveのリポジトリルートを設定します。

OPTIONS="-r /svn/repos"

ユーザーとパスワードの登録

/svn/repos/repo1/conf/svnserve.conf を書き換え、アクセス権を設定します。

[general]
anon-access = none
auth-access = write

/svn/repos/repo1/conf/passwd を書き換え、ユーザー名とパスワードを設定します。

[users]
user.alpha = pass.alpha
user.beta = pass.beta

ファイアウォール設定

svnserveでは3690 TCP接続するので、ポートを開放します。

firewall-cmd -add-port=3690/tcp --zone=public -permanent
firewall-cmd --reload

確認は下記コマンドで行います。

firewall-cmd --list-ports --zone=public

SELinuxの無効化

SELinuxが有効のときはチェックアウトを行えないため、無効化します。 /etc/selinux/config

SELINUX=disabled

再起動し、getenforceを実行してDisabledと表示されることを確認します。

svnserveの実行

svnserveを開始します。

service svnserve start
chkconfig svnserve on

svnserveがポート3690を使用しているか確認します。

netstat -tanp

確認

svn://your.host.name/repo1 をSVNクライアントからチェックアウトできるかを確かめます。

トラブルシューティング

セットアップがうまくいかない場合は、下記に挙げた項目などを調べ、原因の切り分けを行います。

  • ipアドレスへのpingが通るかどうか(ネットワーク設定)
  • 3690ポートを開けているかどうか(Firewall設定)
    • Macの場合はnc -v -w 1 [IP address] -z 3690
    • Winの場合はPowerShellでTest-NetConnection -ComputerName [IP address] -Port 3690
  • チェックアウトできるかどうか(リポジトリ、アクセス権、SELinuxの設定)
    • svn checkout svn://[IP address]/repo1 コマンドを実行できるかどうか
  • ファイルの追加コミットできるかどうか(リポジトリのユーザー設定)