CentOS 7
 

Subversion : HTTP 経由でのリポジトリアクセス
2015/07/13
 
svnserve を利用する場合、新たに 3690/TCP を開放する必要がありますが、 svnserve を利用せずに HTTP 経由でリポジトリにアクセスすることもできます。
[1]
[2] 必要なパッケージをインストールしておきます。
[root@dlp ~]#
yum -y install mod_dav_svn
[3] HTTP 経由でリポジトリにアクセスできるよう設定します。
例として「/var/svn/repos/project」リポジトリに対して設定します。
[root@dlp ~]#
vi /etc/httpd/conf.d/subversion.conf
# 新規作成

<Location /project>
    DAV svn
    AuthType Basic
    AuthName "DAV SVN"
    AuthUserFile /var/svn/.svnpasswd
    Require valid-user
    SVNPath /var/svn/repos/project
</Location>
# ユーザー登録

[root@dlp ~]#
htpasswd -c /var/svn/.svnpasswd cent

New password:
Re-type new password:
Adding password for user cent
[root@dlp ~]#
chown -R apache. /var/svn/repos

[root@dlp ~]#
systemctl restart httpd

[4] アクセス権を設定する場合は以下のように設定します。svnserve を利用する場合のアクセス権設定とは別の設定になります。
[root@dlp ~]#
vi /var/svn/repos/project/conf/authzsvn.conf
# 新規作成

# グループを定義

[groups]
developer = cent,fedora
operator = redhat
# ルートディレクトリのアクセス権は Read

[/]
* = r
# trunk 配下のアクセス権は developer のみ Read/Write

[project:/trunk]
@developer = rw
# branches 配下のアクセス権は operator のみ Read/Write

[project:/branches]
@operator = rw
# tags 配下のアクセス権は operator のみ Read/Write

[project:/tags]
@operator = rw
[root@dlp ~]#
vi /etc/httpd/conf.d/subversion.conf
<Location /project>
    DAV svn
    AuthType Basic
    AuthName "DAV SVN"
    AuthUserFile /var/svn/.svnpasswd
    Require valid-user
    SVNPath /var/svn/repos/project
    AuthzSVNAccessFile /var/svn/repos/project/conf/authzsvn.conf

</Location>
[root@dlp ~]#
systemctl restart httpd

[5] クライアントからは以下のようにアクセスします。
[cent@client ~]$
svn --username cent list http://dlp.srv.world/project

Authentication realm: <http://dlp.srv.world:80> DAV SVN
Password for 'cent':    
# 設定したパスワード

-----------------------------------------------------------------------
ATTENTION!  Your password for authentication realm:

   <http://dlp.srv.world:80> DAV SVN

can only be stored to disk unencrypted!  You are advised to configure
your system so that Subversion can store passwords encrypted, if
possible.  See the documentation for details.

You can avoid future appearances of this warning by setting the value
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
'/home/cent/.subversion/servers'.
-----------------------------------------------------------------------
Store password unencrypted (yes/no)? no

branches/
tags/
trunk/
[6] Web ブラウザで参照アクセスすることもできます。
[7] TortoiseSVN クライアントから利用する場合は、設定ファイルで指定したリポジトリの URL を指定すれば OK です。
 
Tweet