SVNサーバ構築


# SVNサーバをWindows10で構築(2022)。
久々にこのような作業をするので手順をまとめた。
- 使ったのは　**Wandisco　SVN**。
- とりあえずローカルでhttp:// アクセスできるところまで。

## Wandisco SVN ダウンロード
![1_Installer.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/489806/fb83aae5-3b15-7877-e001-f372868b3e39.jpeg)

## インストールの実行

 インストーラ起動。
![2_InstallExe.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/489806/53d93555-663d-68e1-b214-63fb06748b3b.jpeg)

まずはサーバー設定をデフォルト(localhost)で進める。\
リポジトリを収めるフォルダパスを赤枠部分に設定。
Host Portは現在使われていないか"netstat"コマンドで確認しておく(使われていたら別ポート)。

```:CMD
C:\Users\poo>netstat -nao
```

![3_InstallSetting.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/489806/ba369ec0-97d0-44d4-1d3a-a325ff9eaf85.jpeg)


### クライアントツールとしてtortoisesvnをインストール

他の参考サイト参照ください。
ダウンロード先

https://tortoisesvn.net/downloads.html

![t_svn.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/489806/08a930ae-fd76-1225-9da3-63175d340daa.jpeg)
## サーバ設定

 **C:\Program Files (x86)\WANdisco\Subversion\Apache2\conf**
に設定ファイルがある。

 - Appachサーバ用:httpd.conf
 - SVN用:subversion.conf　(httpd.confから参照される)

それぞれ設定を行う(以下に手順を追って説明)。

### Web(appach)サーバ設定：httpd.conf
最初は自身のPCがサーバーなので以下設定のまま(運用時は変更)。

```txt:httpd.conf
 #
 # ServerName gives the name and port that the server uses to identify itself.
 # This can often be determined automatically, but we recommend you specify
 # it explicitly to prevent problems during startup.
 #
 # If your host doesn't have a registered DNS name, enter its IP address here.
 #
 ServerName localhost

```
https://programming-style.com/apache/reference/install-win/

### SVN設定：subversion.conf
- ユーザ認証は後回しでまずはリポジトリの設定。
subversion.confの**SVNParentPath**の　**"¥"は使えないので"/"に変更する**。

```txt:subversion.conf
 #
 # WANdisco Subversion Configuration
 # http://www.wandisco.com
 #
 # For more information on HTTPD configuration options for Subversion
 ~~ 省略 ~~
 <VirtualHost *:80>
  KeepAlive On
  <Location /svn>
   DAV svn
   SVNParentPath "C:/Repo"
   #AuthType Basic
 ~~ 省略 ~~
 </VirtualHost>
```
https://www.saka-en.com/tools/subversion-server-install-windows/

- リポジトリを作成
コマンドプロンプトで　**svnadmin**でリポジトリを作成する。
```:CMD
 C:\Users\Poo>svnadmin create c:\Repo\hoge
 C:\Users\Poo>
```
Tortris SVN リポジトリブラウザで確認する。
![3_Rep.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/489806/bc59ba9a-be47-097f-1841-289bf6339ff7.jpeg)
ここまででWebサーバとしてリポジトリ作成ができた。\
フォルダも追加。
![4_Trunk.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/489806/1ef9adad-daec-2d93-5789-751712a066af.jpeg)

## SVN ユーザ管理
- subversion.confを以下のようにコメントアウトを外して**AuthUserFile**,**AuthzSVNAccessFile**,に対象を追記。
```txt:subversion.conf
Define SVNROOT "C:/Repo"

<Location /svn>
DAV svn
SVNParentPath "${SVNROOT}"
AuthType Basic
AuthName "Subversion Repo"
# If you didn't specify a password file during installation the
# next line needs to be configured for user authentication.
AuthUserFile "${SVNROOT}/users"
AuthzSVNAccessFile "${SVNROOT}/authzsvn.conf"
Require valid-user
SVNAutoversioning on
</Location>
```

- AuthUserFile(ユーザとパスワードの設定ファイル) の作成。\
    ユーザ名＋パスワードのファイル（htpasswdコマンドで作成する）。

コマンドプロンプトから**htpasswd**コマンドでユーザファイルを作成。

例) ユーザー、"one","two"を登録。
``` txt:CMD
C:\Users\poo>htpasswd -c -m users one
New password:
Re-type new password:
Adding password for user one

C:\Users\poo>htpasswd -m users two
New password:
Re-type new password:
Adding password for user two

C:\Users\poo>
```
usersの内容
```users
one:$apr1$w0VsJ4ti$SL3HpOz/GT2MQg0Vplh6V1
two:$apr1$4fe7ozxQ$FOaNYaR2FMV8gD7ng56Bt1
```

- AuthzSVNAccessFile(ユーザ毎のアクセス権限設定ファイル)の作成。

http://park1.wakwak.com/~ima/centos4_subversion0001_4.html

```txt:authzsvn.conf
[groups]
#開発者
developers = one
#管理者
manager = one
[/]
#すべての人が読み込み可能
* = r
```
これらをリポジトリルート **C:\Repo**　以下に配置。

## 動作確認

リポジトリブラウザでアクセス。
![5_Asscess.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/489806/c9e102ac-2764-a50e-8ad4-3c4ed8cc9c33.jpeg)

ログイン画面でログイン。
![6_login.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/489806/90f7c787-94f2-8de6-f573-0d38fdf8d81e.jpeg)

作成したリポジトリに無事アクセスできた。
![7_OK.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/489806/73ca7a7a-047f-07ac-0c62-8a04d92bdb85.jpeg)

## その他
サーババージョン確認。
```:CMD
C:\Users\poo>svnadmin --version
svnadmin, version 1.14.1 (r1886195)
   compiled Mar 16 2021, 17:13:43 on x86/x86_64-microsoft-windows10.0.19041
```


引っ越し

https://pentan.info/server/svn_export.html