FreeBSD 14
Sponsored Link

Subversion : 他ホストからアクセスする2024/09/13

 

他ホストから Subversion リポジトリにアクセスできるよう設定します。

[1] Subversion リポジトリ作成済みのホストで [svnserve] を起動します。
# [svnserve] 起動

root@dlp:~ #
pw useradd svn -m -d /home/svn

root@dlp:~ #
mkdir -p /home/svn/repos

root@dlp:~ #
chown svn:svn /home/svn/repos

root@dlp:~ #
sysrc svnserve_data="/home/svn/repos"

svnserve_data: -> /home/svn/repos
root@dlp:~ #
service svnserve enable

svnserve enabled in /etc/rc.conf
root@dlp:~ #
service svnserve start

Starting svnserve.
# テストプロジェクト作成

root@dlp:~ #
su - svn

svn@dlp:~ $
mkdir -p /home/svn/repos/project

svn@dlp:~ $
svnadmin create /home/svn/repos/project

svn@dlp:~ $
svn mkdir file:///home/svn/repos/project/trunk -m "create"

svn@dlp:~ $
svn mkdir file:///home/svn/repos/project/branches -m "create"

svn@dlp:~ $
svn mkdir file:///home/svn/repos/project/tags -m "create"

[2] 任意の他ホストから、作成済みの Subversion リポジトリにアクセスします。
例として、[1] で作成したテストプロジェクト [/home/svn/repos/project] へアクセスします。
なお、デフォルトでは読み取りアクセス権のみのため、[commit] 等は実行不可です。
[commit] したい場合は [svn://] アクセス時のアクセス権の設定が必要です
# 階層の指定は [1] で SVN トップの階層に指定したディレクトリからの相対パス
# 当例の場合
# トップの階層 : [/home/svn/repos]
# リポジトリの階層 : [/home/svn/repos/project]
# 相対パス : [project]

freebsd@node01:~ $
svn list svn://dlp.srv.world/project

branches/
tags/
trunk/

freebsd@node01:~ $
mkdir ./work

freebsd@node01:~ $
svn checkout svn://dlp.srv.world/project ./work

A    work/branches
A    work/tags
A    work/trunk
Checked out revision 3.

freebsd@node01:~ $
ls -la work

total 19
drwxr-xr-x  6 freebsd freebsd  6 Sep 13 09:21 .
drwxr-xr-x  4 freebsd freebsd 11 Sep 13 09:21 ..
drwxr-xr-x  4 freebsd freebsd  8 Sep 13 09:21 .svn
drwxr-xr-x  2 freebsd freebsd  2 Sep 13 09:21 branches
drwxr-xr-x  2 freebsd freebsd  2 Sep 13 09:21 tags
drwxr-xr-x  2 freebsd freebsd  2 Sep 13 09:21 trunk
[3] Subversion サーバー側で [svnserve] サービスを起動せずに、SSH 経由でアクセスすることも可能です。
freebsd@node01:~ $
svn ls svn+ssh://freebsd@dlp.srv.world/home/svn/repos/project

(freebsd@dlp.srv.world) Password for freebsd@dlp.srv.world:
branches/
tags/
trunk/

freebsd@node01:~ $
mkdir ./work2

freebsd@node01:~ $
svn co svn+ssh://freebsd@dlp.srv.world/home/svn/repos/project ./work2

(freebsd@dlp.srv.world) Password for freebsd@dlp.srv.world:
A    work2/branches
A    work2/tags
A    work2/trunk
Checked out revision 3.
関連コンテンツ