SVN(Apache Subversion)とは、ファイル管理システムのことです。簡単に言うと、ファイルを上書きしても、元に戻せるエクスプローラです。
手順
- CentOS8 1号機にログイン
- svnのインストール
- セキュリティ設定
- 動作確認
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」に戻っているか確認します。

以上、お疲れ様でした。