今更SVNって??まぁどちらかと言うとGitの前座って感じですかね。
やること
タイトルの通りですが、VirtualBox上のLinux(CentOS7)サーバにSubversionをインストールし、リポジトリを作成する。
ホストマシン(Windows10)をクライアントとして、ファイルのコミット等を行えるようにします。
CentOS7にSubversionをインストール
私の場合は、Windows10からteratermでLinuxにログインした状態です。
以下、順次コマンドを実行していきます。
0からだと分からないので以下を参考にさせていただきました。
https://internalservererror.info/2018/04/20/httpでアクセスできるsubversionサーバーを構築する/
Subversionインストール
sudo yum install subversion
バージョンの確認
svnserve --version
ちなみに私の場合、1.7.14がインストールされていました。
Subversionのリポジトリ作成
sudo mkdir -p /var/www/svn/repos sudo svnadmin create /var/www/svn/repos
svn mkdir file:///var/www/svn/repos/trunk -m "create" svn mkdir file:///var/www/svn/repos/branches -m "create" svn mkdir file:///var/www/svn/repos/tags -m "create"
Subversion用のグループを作成
sudo groupadd svngroup
Subversionリポジトリのグループと権限を変更
sudo chown -R :svngroup /var/www/svn/ sudo chmod -R 775 /var/www/svn/
Subversion用のユーザを作成、グループに入れる
sudo useradd -m svnuser sudo usermod -aG svngroup svnuser
パスワード設定
passwd svnuser
サービスを開始する。
systemctl start svnserve
次にhttp経由でリポジトリにアクセスできるようにする。
mod_dav_svn をインストール。
yum install mod_dav_svn
アパッチに所有権を持たせる
chown -R apache:apache /var/www/svn
subversion設定ファイルの編集
vim /etc/httpd/conf.d/subversion.conf
以下の内容を追記する。
# 新規作成 <Location /svn/repos> DAV svn AuthType Basic AuthName "DAV SVN" AuthUserFile /etc/httpd/.htpasswd Require valid-user SVNPath /var/www/svn/repos/ </Location>
ユーザの設定
※-cオプションは新規作成なので、追加する場合は-cをはずせばいい
htpasswd -bc /etc/httpd/.htpasswd [ユーザ名] [パスワード]
再起動。
systemctl restart httpd
最初は以下のパスに直でリポジトリ作ろうとしたのですが多分アパッチユーザが読み込むことができずにエラーでハマりました。。
場所だけ移動してリポジトリを作りなすとすんなり進行した。
/var/svn/repos
ホストマシン(Windows)からsvnに接続する
クライアントとなるホストマシンから接続を行います。
ホストマシンにはTortoiseSVNがインストールされているものとします。
任意の場所にチェックアウト用のフォルダを作成します。
右クリックしてチェックアウトを選択し、以下のようにリポジトリを指定します。
ユーザの認証画面が表示されれば指定は間違っていないでしょう。
とりあえず、svn用のユーザを指定してみます。
とりあえず、チェックアウトはできました!
正直途中でぐだったけどまぁなんとか。
コミットまでできるようにする。
trunkは以下にtestフォルダを作成して、TortoiseSVNで追加。
その後コミットするとエラーになる。
could not begin a transaction
ひとまずは理解もできていない暫定対応ですがSELinuxの設定がどうとかが原因らしい。
Linuxで以下のコマンドを打ち込む。
setenforce 0
コミットに成功。
途中でモチベーションが落ちてしまい時間がかかったけどひとまずはここまで。