subversion

リポジトリの作成、アクセス権の設定、アカウントの追加

※アクセス権は以下のように設定する
 アカウントなし → リードのみ実行可能
 アカウントあり → リード・ライト可能

リポジトリの作成

$ sudo mkdir /var/svn/repos/test
$ sudo svnadmin create /var/svn/repos/test

・アクセス権の設定

$ cd /var/svn/repos/test/conf
$ sudo vi svnserve.conf
...
[general]
...
↓コメントインする(行頭にスペースは入れないこと)
# anon-access = read
# auth-access = write
...
↓コメントインする(行頭にスペースは入れないこと)
# password-db = passwd
...

・ユーザアカウントの追加

$ sudo vi passwd
...
[users]
scott = tiger

ミラーリポジトリの作成、初期化、同期

・ミラーリポジトリの作成

$ sudo mkdir /var/svn/repos/test
$ sudo svnadmin create /var/svn/repos/test
$ cd /var/svn/repos/test/hooks
$ sudo vi pre-revprop-change
  #!/bin/sh
  exit 0
$ sudo chmod 755 pre-revprop-change

・ミラーリポジトリの初期化

$ sudo svnsync init file:///var/svn/repos/test svn://<ソースリポジトリがあるサーバのアドレス>/repos/test

・ソースリポジトリと同期をとる

$ sudo svnsync sync file:///var/svn/repos/test

[CentOS7][SVN]サーバ構築

https://qiita.com/SierSetup/items/c47b861dc563919c94ac


sshで接続できるならサービスを立ち上げなくてもよい。
接続時のURLは、svn+ssh://<user>@<host>/<リポジトリ絶対パス>

svnsync: E000013: ファイル '/var/svn/repos/test/format' を開けません: 許可がありません

SELinuxが悪さしょうるんが分かったんじゃけどね...プチハマリ。orz
https://w.atwiki.jp/ohden/pages/403.html

svn: attempt to write a readonly database

https://calpo.hatenadiary.org/entry/20110315/p1


リポジトリの引っ越し

リポジトリのダンプファイルを作成する。

$ svnadmin dump /var/svn/repos/test/ > test.svndmp
* リビジョン 0 をダンプしました。
* リビジョン 1 をダンプしました。


・ダンプファイルを引っ越し先に転送する。


ー引っ越し先での処理ー
リポジトリを作成する。

# mkdir /var/svn/repos/test
# svnadmin create /var/svn/repos/test


・ダンプをリポジトリにロードする。

# svnadmin load /var/svn/repos/test < test.svndmp 
<<< Started new transaction, based on original revision 1
     * editing path : subversion.txt ... done.

------- Committed revision 1 >>>


ー作業コピーのURLの変更方法ー

$ svn switch --relocate svn://<変更前のサーバのアドレス>/repos/test svn://<変更後のサーバのアドレス>/repos/test


SVN - Error Rep Repository UUID 'XXX...' doesn't match expected 'XXX..'
https://kiwix.ounapuu.ee/serverfault.com_en_all_2019-02/A/question/248495.html

svnadmin setuuid <repository path> <new uuid>