SVN(Apache Subversion)とは、ファイル管理システムのことです。簡単に言うと、ファイルを上書きしても、元に戻せるエクスプローラです。

手順

  1. CentOS8 1号機にログイン
  2. svnのインストール
  3. セキュリティ設定
  4. 動作確認

1.CentOS8 1号機にログイン

TeraTermで、CentOS8 1号機にrootでログインします。

2.SVNのインストール

# SVNのインストール
[root@CE08PRD101 ~] # dnf -y install subversion mod_dav_svn mod_ldap
(省略)

完了しました!

# リポジトリの作成
[root@CE08PRD101 ~] # mkdir -p /svn/repo; ls -ld /svn/repo
drwxr-xr-x. 2 root root 6 10月 2 22:58 /svn/repo

[root@CE08PRD101 ~] # svnadmin create /svn/repo



# 作成したディレクトリの確認
[root@CE08PRD101 ~] # svn mkdir file:///svn/repo/trunk -m "create"
Committing transaction…
リビジョン 1 をコミットしました。
[root@CE08PRD101 ~] # svn mkdir file:///svn/repo/branches -m "create"
Committing transaction…
リビジョン 2 をコミットしました。
[root@CE08PRD101 ~] # svn mkdir file:///svn/repo/tags -m "create"
Committing transaction…
リビジョン 3 をコミットしました。

# SVN用グループ作成

[root@CE08PRD101 ~] # groupadd svngroup

# Subversionリポジトリのグループと権限変更
[root@CE08PRD101 ~] # chown -R :svngroup /svn/repo
[root@CE08PRD101 ~] # chmod -R 775 /svn/repo

# SVN用ユーザ作成
[root@CE08PRD101 ~] # useradd -m svnuser
[root@CE08PRD101 ~] # usermod -aG svngroup svnuser

# SVN用ユーザのパスワード設定
[root@CE08PRD101 ~] # passwd svnuser
ユーザー svnuser のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。

# 設定ファイルの編集
[root@CE08PRD103 ~]# vi /etc/sysconfig/svnserve
OPTIONS="-r /var/svn"

OPTIONS="-r /svn/repo"

# サービス起動
[root@CE08PRD101 ~]# systemctl enable --now svnserver

# サービス起動確認
# Active:がactiveになっていることを確認する。
[root@CE08PRD101 ~]# systemctl status nfs-server
● svnserve.service - Subversion protocol daemon
   Loaded: loaded (/usr/lib/systemd/system/svnserve.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-10-02 23:18:36 JST; 25s ago
     Docs: man:svnserve(8)
  Process: 6100 ExecStart=/usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid $OPTIONS (code=exited, status=0/SUCCESS)
(省略)

# アパッチユーザに所有権を持たせる
[root@CE08PRD101 ~]# chown -R apache:apache /svn/repo

# テスト
[root@CE08PRD101 ~]# echo "test">test.txt
[root@CE08PRD101 ~]# svn import test.txt file:///svn_repo/test_repo/repo/code/test.txt -m "import"

# テストファイルを登録します。
# コミットされればOKです。
[root@CE08PRD101 ~]# svn import test.txt file:///svn/repo/trunk/test.txt -m "import"
追加しています              test.txt
Committing transaction…
リビジョン 4 をコミットしました。

# ブラウザからアクセスするための設定
[root@CE08PRD101 ~]# vi /etc/httpd/conf.d/subversion.conf
<Location /svn/repo>
    DAV svn
    SVNPath /svn/repo
</Location>

ブラウザからアクセスできるか確認する

http://<svnサーバのIPアドレス>/svn/repo

以下のようにbrances、tags、trunkが表示されればOKです。

「trunk」をクリックし、先ほど作成したtest.txtがあることを確認します。

4.セキュリティ設定

# ファイヤーウォールの許可設定
[root@CE08PRD101 ~]# firewall-cmd --add-service=nfs --permanent
success
[root@CE08PRD101 ~]# firewall-cmd --reload
success

# ファイヤーウォールの許可設定確認
# nfsが追加されたことを確認する。
[root@CE08PRD101 ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services: cockpit dhcpv6-client ftp http nfs ntp ssh
(省略)

5.WindowsからSVNにアクセスする

以下のサイトから、TortoiseSVNをダウンロードする。

https://tortoisesvn.net/downloads.html

for 64-bit OS
Tortoise SVN 1.14.0-64bit

TortoiseSVN-1.14.0.28885-x64-svn-1.14.0.msi

以下のインストーラがダウンロードされうので、これを実行し、TortoiseSVNをインストールします。

TortoiseSVN-1.14.0.28885-x64-svn-1.14.0.msi

こだわりがなければ、「Next」を押していき、「Install」を押せばOKです。
※途中でユーザーアカウント制御の確認画面が出たら、「はい」を押します。

インストールが完了したら、スタートメニューにTortoiseSVNが追加されるので、
「TortoiseSVN Repository Browser」を開きます。

URLにSVNサーバのURLを入力し、OKを押します。

http://<SVNサーバのIPアドレス>/svn/repo

trunkの中に、先ほど作成したtest.txtがあることを確認します。

7.動作確認

動作確認として、テストファイルを一度更新し、更新後に元のファイルに戻せるか確認します。

1.test.txtをローカルPCにチェックアウトする
2.ローカルPCでtest.txtを編集する
3.test.txtをコミットする
4.test.txtを元の内容に戻す


1.test.txtをローカルPCにチェックアウトする
test.txtで右クリックをし、「Checkout」を押します。


Checkout directory:に任意のフォルダを指定し、「OK]を押します。

※予め、ローカルPCでSVN専用のフォルダを作成しておきます。


「OK]を押します。

リビジョンが4であることを覚えておいてください。


ローカルPCに、test.txtがダウンロードされます。

では、このファイルを編集します。

※本来は、test.txtにチェックマークがつきますが、onedriveやdropboxが入っていると、チェックマークが表示されません。


中身を「テスト」から「編集後」に書き換えて、保存します。


SVN Comitをおします。


Messageの欄に、「編集後」と記入し、「OK]を押します。
その後、「OK」を押します。

では、テストファイルを元のバージョンに戻してみます。(中身がtestのやつ)
test.txtを右クリックし、「TortoiseSVN」 → 「Show log」を押します。

リビジョン4のファイルで、右クリックし、「Rever to this revision」を押します。

その後、「revert」 → 「OK」

これで、ファイルが元に戻りました。

中身が、「test」に戻っているか確認します。

以上、お疲れ様でした。