svn その3 課題リストを消化するんご

■検証環境

・svn server

CentOS6.9、192.168.2.26、プロンプト:せ6>、リポジトリのパス:/var/svn/repos/project

svnサーバ起動

せ6> service svnserve start

・svn client A

CentOS7.3、192.168.2.7、プロンプト:せ7>、リポジトリのパス:/svn/project

・svn client B

OpenSuSE11.4、192.168.2.11、プロンプト:すぜ>、リポジトリのパス:/svn/project

 

■サーバ上のルートリポジトリとクライアント上のローカルリポジトリの構造

【復習】

svn serverにリポジトリの階層構造がある場合。つまりリポジトリのルートディレクトリ「project」を svnadmin create で作成して、その直下に svn mkdir で「trunk」、「branches」、「tags」という3つの子リポジトリを作成しているとする(参照:svn その1

せ6> ls -lA /var/svn/repos
drwxr-xr-x 6 root root 4096  2月 25 14:15 2018 project
せ6> ls -lA /var/svn/repos/project
合計 24
-rw-r--r-- 1 root root  229  2月 25 14:15 2018 README.txt
drwxr-xr-x 2 root root 4096  2月 25 21:55 2018 conf
drwxr-sr-x 7 root root 4096  4月 30 17:02 2018 db
-r--r--r-- 1 root root    2  2月 25 14:15 2018 format
drwxr-xr-x 2 root root 4096  2月 25 14:15 2018 hooks
drwxr-xr-x 2 root root 4096  2月 25 14:15 2018 locks

 ファイルシステム上に実ディレクトリ「project」を作ってsvnadmin createで引数に指定して実行すると上記のようなファイルやディレクトリが生成される

→svn mkdir で「project/trunk」、「project/branches」、「project/tags」などの子リポジトリを作成しても、ファイルシステム上の「project」Iディレクトリ配下に「trunk」、「branches」、あるいは「tags」がファイルシステム上の実ディレクトリとして生成されるわけではない。(物理的にはdbとして生成される)

上記のREADME.txtを見ると、

せ6> cat /var/svn/repos/project/README.txt
This is a Subversion repository; use the 'svnadmin' tool to examine
it.  Do not add, delete, or modify files here unless you know how
to avoid corrupting the repository.
Visit http://subversion.tigris.org/ for more information.

のように書かれていて、svnadmin createで作成したリポジトリディレクトリはsvnadmin toolでのみ操作が許されていて、OSのコマンドで削除や編集してはいけないとのこと。

せ6> ls -lA /var/svn/repos/project/db
合計 52
-rw-r--r-- 1 root root    3  4月 30 17:02 2018 current
-r--r--r-- 1 root root   22  2月 25 14:15 2018 format
-rw-r--r-- 1 root root    5  2月 25 14:15 2018 fs-type
-rw-r--r-- 1 root root 1920  2月 25 14:15 2018 fsfs.conf
-rw-r--r-- 1 root root    2  2月 25 14:15 2018 min-unpacked-rev
drwxr-sr-x 2 root root 4096  2月 25 19:15 2018 node-origins
-rw-r--r-- 1 root root 4096  4月 30 17:02 2018 rep-cache.db
drwxr-sr-x 3 root root 4096  2月 25 14:15 2018 revprops
drwxr-sr-x 3 root root 4096  2月 25 14:15 2018 revs
drwxr-sr-x 2 root root 4096  4月 30 17:02 2018 transactions
-rw-r--r-- 1 root root    2  4月 30 17:02 2018 txn-current
-rw-r--r-- 1 root root    0  2月 25 14:15 2018 txn-current-lock
drwxr-sr-x 2 root root 4096  4月 30 17:02 2018 txn-protorevs
-rw-r--r-- 1 root root   37  2月 25 14:15 2018 uuid
-rw-r--r-- 1 root root    0  2月 25 14:15 2018 write-lock

 

【疑問1】

svnadmin create で作成したリポジトリのルートディレクトリの外に svn mkdir で子リポジトリを作成することに意味はあるのか?

【検証1】

せ6> mkdir -p /var/svn/repos/project2
せ6> svn mkdir file:///var/svn/repos/project2/trunk -m "create"

svn: URL に対し ra_local セッションを開始できません
svn: リポジトリ 'file:///var/svn/repos/project2' を開けませんでした

→意味あるなしではなくそもそも作成できない

せ6> svnadmin create /var/svn/repos/project2
せ6> svn mkdir file:///var/svn/repos/project2/trunky -m "create"

リビジョン 1 をコミットしました。

すぜ> svn list svn://192.168.2.26/var/svn/repos/project2
trunky/

→svnadmin create で作成したリポジトリのルートディレクトリの中にのみ子リポジトリを作成できる。

 

【疑問2】

svn mkdir で作成した子リポジトリの中に孫リポジトリを作成できるのか?

【検証2-1】

階層構造がめちゃくちゃなリポジトリをあえて作って自由すぎるクライアントによるリポジトリ運用をあえて試行してみるんご
 

せ6> svn mkdir file:///var/svn/repos/project2/trunky/trunkyy -m "create"
リビジョン 2 をコミットしました。

すぜ> svn list svn://192.168.2.26/var/svn/repos/project2
trunky/
すぜ> svn list svn://192.168.2.26/var/svn/repos/project2/trunky
trunkyy/
すぜ> svn list svn://192.168.2.26/var/svn/repos/project2/trunky/trunkyy

すぜ>

→普通に作成できたクサい。さらに、

すぜ> pwd
/svn

すぜ> svn checkout svn://192.168.2.26/var/svn/repos/project2
A    project2/trunky
A    project2/trunky/trunkyy
Checked out revision 2.

すぜ> svn checkout svn://192.168.2.26/var/svn/repos/project2/trunky
A    trunky/trunkyy
Checked out revision 2.

すぜ> svn checkout svn://192.168.2.26/var/svn/repos/project2/trunky/trunkyy
Checked out revision 2.
すぜ> ls -lA /svn
total 16
drwxr-xr-x 6 root root 4096 Feb 25 08:01 project  ←
svn その1でチェックアウトしたリポジトリ
drwxr-xr-x 4 root root 4096 May  2 01:35 project2
drwxr-xr-x 4 root root 4096 May  2 01:37 trunky
drwxr-xr-x 3 root root 4096 May  2 01:37 trunkyy

→いい感じに3世代住宅www

すぜ> ls -lA /svn/project2
total 8
drwxr-xr-x 6 root root 4096 May  2 01:35 .svn
drwxr-xr-x 4 root root 4096 May  2 01:35 trunky

すぜ> ls -lA /svn/trunky
total 8
drwxr-xr-x 6 root root 4096 May  2 01:37 .svn
drwxr-xr-x 3 root root 4096 May  2 01:37 trunkyy

すぜ> ls -lA /svn/trunkyy
total 4
drwxr-xr-x 6 root root 4096 May  2 01:37 .svn

svnserver上では「project」と「project2」が親(ルート)リポジトリで、「trunky」は「project2」の子リポジトリで「trunkyy」は「trunky」の子リポジトリ(「project2」の孫リポジトリ)

もう一つのsvnクライアントでは、「project」リポジトリの配下に「project2」リポジトリをチェックアウトしてみるwww

せ7> ls -lA /svn/project
合計 0
drwxr-xr-x. 4 root root 75  4月 30 17:28 .svn          ←
svn その1でチェックアウトしたリポジトリ
drwxr-xr-x. 2 root root  6  2月 25 23:52 branches   ←同上
drwxr-xr-x. 2 root root  6  2月 25 23:52 tags           ←同上
drwxr-xr-x. 2 root root 91  4月 30 17:27 trunk         ←同上

せ7> pwd
/svn/project
せ7> svn co svn://192.168.2.26/var/svn/repos/project2
A    project2/trunky
A    project2/trunky/trunkyy
リビジョン 2 をチェックアウトしました。

せ7> ls -lA /svn/project/project2
合計 0
drwxr-xr-x. 4 root root 75  5月  2 15:01 .svn
drwxr-xr-x. 3 root root 21  5月  2 15:01 trunky

せ7> ls -lA /svn/project/project2/trunky/
合計 0
drwxr-xr-x. 2 root root 6  5月  2 15:01 trunkyy

せ7> ls -lA /svn/project/project2/trunky/trunkyy/
合計 0

→いい感じに家庭崩壊してるんご。最悪なリポジトリ管理と運用をあえて試行してみるんご

 

【検証2-2】

svnクライアントSuSEでローカルリポジトリsvn://192.168.2.26/var/svn/repos/project2/trunky/trunkyy

内に新しいファイルhoge.txtを作成してcommitしてみるんご

 

すぜ> echo `date` hoge > /svn/project2/trunky/trunkyy/hoge.txt

すぜ> cat /svn/project2/trunky/trunkyy/hoge.txt
Wed May 2 02:17:25 EDT 2018 hoge

すぜ> cd /svn/project2;svn info
Path: .
URL: svn://192.168.2.26/var/svn/repos/project2
Repository Root: svn://192.168.2.26/var/svn/repos/project2
Repository UUID: 6846c410-b35e-466a-9d3b-2677a2ac4e25
Revision: 2
Node Kind: directory
Schedule: normal
Last Changed Author: root
Last Changed Rev: 2
Last Changed Date: 2018-05-02 00:12:32 -0400 (Wed, 02 May 2018)

すぜ> cd /svn/project2/trunky;svn info
Path: .
URL: svn://192.168.2.26/var/svn/repos/project2/trunky
Repository Root: svn://192.168.2.26/var/svn/repos/project2
Repository UUID: 6846c410-b35e-466a-9d3b-2677a2ac4e25
Revision: 2
Node Kind: directory
Schedule: normal
Last Changed Author: root
Last Changed Rev: 2
Last Changed Date: 2018-05-02 00:12:32 -0400 (Wed, 02 May 2018)

すぜ> cd /svn/project2/trunky/trunkyy;svn info
Path: .
URL: svn://192.168.2.26/var/svn/repos/project2/trunky/trunkyy
Repository Root: svn://192.168.2.26/var/svn/repos/project2
Repository UUID: 6846c410-b35e-466a-9d3b-2677a2ac4e25
Revision: 2
Node Kind: directory
Schedule: normal
Last Changed Author: root
Last Changed Rev: 2
Last Changed Date: 2018-05-02 00:12:32 -0400 (Wed, 02 May 2018)

すぜ> cd /svn/trunky;svn info
Path: .
URL: svn://192.168.2.26/var/svn/repos/project2/trunky
Repository Root: svn://192.168.2.26/var/svn/repos/project2
Repository UUID: 6846c410-b35e-466a-9d3b-2677a2ac4e25
Revision: 2
Node Kind: directory
Schedule: normal
Last Changed Author: root
Last Changed Rev: 2
Last Changed Date: 2018-05-02 00:12:32 -0400 (Wed, 02 May 2018)

すぜ> cd /svn/trunky/trunkyy/;svn info
Path: .
URL: svn://192.168.2.26/var/svn/repos/project2/trunky/trunkyy
Repository Root: svn://192.168.2.26/var/svn/repos/project2
Repository UUID: 6846c410-b35e-466a-9d3b-2677a2ac4e25
Revision: 2
Node Kind: directory
Schedule: normal
Last Changed Author: root
Last Changed Rev: 2
Last Changed Date: 2018-05-02 00:12:32 -0400 (Wed, 02 May 2018)

すぜ> cd /svn/trunkyy/;svn info
Path: .
URL: svn://192.168.2.26/var/svn/repos/project2/trunky/trunkyy
Repository Root: svn://192.168.2.26/var/svn/repos/project2
Repository UUID: 6846c410-b35e-466a-9d3b-2677a2ac4e25
Revision: 2
Node Kind: directory
Schedule: normal
Last Changed Author: root
Last Changed Rev: 2
Last Changed Date: 2018-05-02 00:12:32 -0400 (Wed, 02 May 2018)

せ7> cd /svn/project/project2;svn info
パス: .
Working Copy Root Path: /svn/project/project2
URL: svn://192.168.2.26/var/svn/repos/project2
リポジトリのルート: svn://192.168.2.26/var/svn/repos/project2
リポジトリ UUID: 6846c410-b35e-466a-9d3b-2677a2ac4e25
リビジョン: 2
ノード種別: ディレクトリ
準備中の処理: 特になし
最終変更者: root
最終変更リビジョン: 2
最終変更日時: 2018-05-02 13:12:32 +0900 (水, 02  5月 2018)

→両クライアントの親、子、孫で実行した svn info の結果はすべて同じ。UUIDもすべて一致

すぜ> svn add /svn/project2/trunky/trunkyy/hoge.txt
A         /svn/project2/trunky/trunkyy/hoge.txt        ←リポジトリに追加!

すぜ> svn ci -m "add /svn/project2/trunky/trunkyy/hoge.txt"
Adding         trunky/trunkyy/hoge.txt
Transmitting file data .
Committed revision 3.

すぜ> cd /svn/project2;svn update
At revision 3.
すぜ> svn info
Path: .
URL: svn://192.168.2.26/var/svn/repos/project2
Repository Root: svn://192.168.2.26/var/svn/repos/project2
Repository UUID: 6846c410-b35e-466a-9d3b-2677a2ac4e25
Revision: 3
Node Kind: directory
Schedule: normal
Last Changed Author: dagyah
Last Changed Rev: 3
Last Changed Date: 2018-05-02 01:25:00 -0400 (Wed, 02 May 2018)

すぜ> ls -lA /svn/trunky/trunkyy
total 4
drwxr-xr-x 6 root root 4096 May  2 01:37 .svn

→svn updateしてないのでまだ居ない。
すぜ> ls -lA /svn/trunkyy
total 4
drwxr-xr-x 6 root root 4096 May  2 01:37 .svn

→svn updateしてないのでまだ居ない。

せ7> ls -lA /svn/project/project2/trunky/trunkyy
合計 0

→svn updateしてないのでまだ居ない。

せ7> svn cat svn://192.168.2.26/var/svn/repos/project2/trunky/trunkyy/hoge.txt
Wed May 2 02:17:25 EDT 2018 hoge

→svn ci した時点でsvn serverには居る

すぜ> cd /svn/trunky;svn update
A    trunkyy/hoge.txt
Updated to revision 3.

すぜ> ls -lA /svn/trunky/trunkyy
total 8
drwxr-xr-x 6 root root 4096 May  2 02:56 .svn
-rw-r--r-- 1 root root   33 May  2 02:56 hoge.txt     ←現れた!

すぜ> svn info
Path: .
URL: svn://192.168.2.26/var/svn/repos/project2/trunky
Repository Root: svn://192.168.2.26/var/svn/repos/project2
Repository UUID: 6846c410-b35e-466a-9d3b-2677a2ac4e25
Revision: 3
Node Kind: directory
Schedule: normal
Last Changed Author: dagyah
Last Changed Rev: 3
Last Changed Date: 2018-05-02 01:25:00 -0400 (Wed, 02 May 2018)

すぜ> cd /svn/trunkyy;svn info
Path: .
URL: svn://192.168.2.26/var/svn/repos/project2/trunky/trunkyy
Repository Root: svn://192.168.2.26/var/svn/repos/project2
Repository UUID: 6846c410-b35e-466a-9d3b-2677a2ac4e25
Revision: 2           ←まだリビジョン2
Node Kind: directory
Schedule: normal
Last Changed Author: root
Last Changed Rev: 2
Last Changed Date: 2018-05-02 00:12:32 -0400 (Wed, 02 May 2018)

すぜ> svn update;svn info
A    hoge.txt
Updated to revision 3.
Path: .
URL: svn://192.168.2.26/var/svn/repos/project2/trunky/trunkyy
Repository Root: svn://192.168.2.26/var/svn/repos/project2
Repository UUID: 6846c410-b35e-466a-9d3b-2677a2ac4e25
Revision: 3          ←リビジョン3になったんご
Node Kind: directory
Schedule: normal
Last Changed Author: dagyah
Last Changed Rev: 3
Last Changed Date: 2018-05-02 01:25:00 -0400 (Wed, 02 May 2018)

すぜ> ls -lA /svn/trunkyy
total 8
drwxr-xr-x 6 root root 4096 May  2 02:59 .svn
-rw-r--r-- 1 root root   33 May  2 02:59 hoge.txt     ←現れた!

せ7> cd /svn/project/project2;svn info
パス: .
Working Copy Root Path: /svn/project/project2
URL: svn://192.168.2.26/var/svn/repos/project2
リポジトリのルート: svn://192.168.2.26/var/svn/repos/project2
リポジトリ UUID: 6846c410-b35e-466a-9d3b-2677a2ac4e25
リビジョン: 2
ノード種別: ディレクトリ
準備中の処理: 特になし
最終変更者: root
最終変更リビジョン: 2
最終変更日時: 2018-05-02 13:12:32 +0900 (水, 02  5月 2018)

せ7> svn update;svn info
Updating '.':
A    trunky/trunkyy/hoge.txt
リビジョン 3 に更新しました。
パス: .
Working Copy Root Path: /svn/project/project2
URL: svn://192.168.2.26/var/svn/repos/project2
リポジトリのルート: svn://192.168.2.26/var/svn/repos/project2
リポジトリ UUID: 6846c410-b35e-466a-9d3b-2677a2ac4e25
リビジョン: 3
ノード種別: ディレクトリ
準備中の処理: 特になし
最終変更者: dagyah
最終変更リビジョン: 3
最終変更日時: 2018-05-02 14:25:00 +0900 (水, 02  5月 2018)

→svnクライアント側で階層構造が重複する枝を別のローカルディレクトリにチェックアウトしてもそれだけではバージョン管理は破綻しない! ただし、チェックアウトした箇所それぞれで svn updateするまで各ローカルリポジトリでリビジョンは同期しない。

 

【検証2-3】

svnクライアントSuSEのでローカルリポジトリsvn://192.168.2.26/var/svn/repos/project2/trunky

内のtrunkyyディレクトリ内のhoge.txtを編集してcommitしてみるんご

 

せ7> echo `date` "edit by CentOS7" >> /svn/project/project2/trunky/trunkyy/hoge.txt

せ7> cd /svn/project/project2;svn ci -m "edit by CentOS7"
認証領域: <svn://192.168.2.26:3690> My First Repository
'root' のパスワード:
認証領域: <svn://192.168.2.26:3690> My First Repository

ユーザ名: dagyah
'dagyah' のパスワード:
-----------------------------------------------------------------------
ATTENTION!  Your password for authentication realm:
   <svn://192.168.2.26:3690> My First Repository
can only be stored to disk unencrypted!  You are advised to configure
your system so that Subversion can store passwords encrypted, if
possible.  See the documentation for details.
You can avoid future appearances of this warning by setting the value
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
'/root/.subversion/servers'.
-----------------------------------------------------------------------
暗号化されていないパスワードを保存しますか (yes/no)? yes
送信しています              trunky/trunkyy/hoge.txt
ファイルのデータを送信しています .
Committed revision 4.

せ7> svn log | head -3
------------------------------------------------------------------------
r3 | dagyah | 2018-05-02 14:25:00 +0900 (水, 02  5月 2018) | 1 line

→commitしたらsvn server上のリビジョンは4に上がるが、ローカルリポジトリのリビジョンはまだ3のまま

せ7> svn update;svn log | head -3
Updating '.':
リビジョン 4 です。
------------------------------------------------------------------------
r4 | dagyah | 2018-05-02 14:56:52 +0900 (水, 02  5月 2018) | 1 line

→ローカルリポジトリのリビジョンは svn update して初めて4に上がる

すぜ> cat /svn/trunkyy/hoge.txt

Wed May 2 02:17:25 EDT 2018 hoge
すぜ> cat /svn/trunky/trunkyy/hoge.txt
Wed May 2 02:17:25 EDT 2018 hoge
すぜ> cat /svn/project2/trunky/trunkyy/hoge.txt
Wed May 2 02:17:25 EDT 2018 hoge

すぜ> cd /svn/project2;svn log | head -n 2
------------------------------------------------------------------------
r3 | dagyah | 2018-05-02 01:25:00 -0400 (Wed, 02 May 2018) | 1 line
svn: Write error: Broken pipe

すぜ> cd /svn/trunky;svn log | head -n 2
------------------------------------------------------------------------
r3 | dagyah | 2018-05-02 01:25:00 -0400 (Wed, 02 May 2018) | 1 line
svn: Write error: Broken pipe

すぜ> cd /svn/trunkyy;svn log | head -n 2
------------------------------------------------------------------------
r3 | dagyah | 2018-05-02 01:25:00 -0400 (Wed, 02 May 2018) | 1 line
svn: Write error: Broken pipe

→当然まだリビジョンは3のまま

すぜ> cd /svn/trunkyy;svn update;svn log | head -n 2
U    hoge.txt
Updated to revision 4.
------------------------------------------------------------------------
r4 | dagyah | 2018-05-02 01:56:52 -0400 (Wed, 02 May 2018) | 1 line
svn: Write error: Broken pipe

すぜ> cd /svn/trunky;svn update;svn log | head -n 2
U    trunkyy/hoge.txt
Updated to revision 4.
------------------------------------------------------------------------
r4 | dagyah | 2018-05-02 01:56:52 -0400 (Wed, 02 May 2018) | 1 line
svn: Write error: Broken pipe

すぜ> cd /svn/project2;svn update;svn log | head -n 2
U    trunky/trunkyy/hoge.txt
Updated to revision 4.
------------------------------------------------------------------------
r4 | dagyah | 2018-05-02 01:56:52 -0400 (Wed, 02 May 2018) | 1 line
svn: Write error: Broken pipe

→それぞれのローカルリポジトリのリビジョンはそれぞれのチェックアウト場所で svn update して初めて4に上がる

 

【分かったこと】

・svnクライアント側で階層構造が重複する枝を別のローカルディレクトリにチェックアウトしてもそれだけではバージョン管理は破綻しない。

・チェックアウト地点で svn updateするまで各ローカルリポジトリのリビジョンは同期しない。

つまり、チェックアウト地点が異なるそれぞれのディレクトリはそれぞれ独立した別々のローカルリポジトリとなり、それ以上でもなければそれ以下でもない。

 

【疑問3】

svnserverでルートリポジトリの中に別のルートリポジトリをネストできるのか?

→svnserver上のルートリポジトリと子リポジトリの関係はローカルリポジトリと違ってルートリポジトリのサブディレクトリでなく、ルートディレクトリ内のDBである。

ルートディレクトリの中に別のルートリポジトリをネストするということは、ルートディレクトリ内に、ネストするディレクトリをmkdirで作成する必要があり、そもそも、READMEに書かれているとおり、ルートディレクトリに内にmkdirでディレクトリを手動作成してはいけないというルールに抵触するから不能もしくは不定であると思われる。

【検証3】

せ6> mkdir /var/svn/repos/project3

せ6> svnadmin create /var/svn/repos/project3

せ6> ll /var/svn/repos/project3
合計 24
-rw-r--r-- 1 root root  229  5月  2 15:30 2018 README.txt
drwxr-xr-x 2 root root 4096  5月  2 15:30 2018 conf
drwxr-sr-x 6 root root 4096  5月  2 15:30 2018 db
-r--r--r-- 1 root root    2  5月  2 15:30 2018 format
drwxr-xr-x 2 root root 4096  5月  2 15:30 2018 hooks
drwxr-xr-x 2 root root 4096  5月  2 15:30 2018 locks

せ6> mkdir /var/svn/repos/project3/project4   ←これがPEADMEの禁止操作

せ6> svnadmin create /var/svn/repos/project3/project4
svnadmin: '/var/svn/repos/project3/project4' is a subdirectory of an existing repository rooted at '/var/svn/repos/project3'

せ6> ll /var/svn/repos/project3/project4
合計 0        ←リポジトリは作られない!


【疑問4】

すでに既存ファイルがあるディレクトリを svnadmin create でルートリポジトリにできるか?

【検証4】

せ6> touch project5/unko.txt
せ6> svnadmin create /var/svn/repos/project5

svnadmin: リポジトリの作成に失敗しました
svnadmin: トップレベルのディレクトリを作成できませんでした
svnadmin: '/var/svn/repos/project5' は存在します。そして空ではありません

せ6> ll /var/svn/repos/project5
合計 0
-rw-r--r-- 1 root root 0  5月  2 15:42 2018 unko.txt

せ6> rm -f project5/unko.txt
せ6> svnadmin create /var/svn/repos/project5
せ6> ll /var/svn/repos/project5

合計 24
-rw-r--r-- 1 root root  229  5月  2 15:44 2018 README.txt
drwxr-xr-x 2 root root 4096  5月  2 15:44 2018 conf
drwxr-sr-x 6 root root 4096  5月  2 15:44 2018 db
-r--r--r-- 1 root root    2  5月  2 15:44 2018 format
drwxr-xr-x 2 root root 4096  5月  2 15:44 2018 hooks
drwxr-xr-x 2 root root 4096  5月  2 15:44 2018 locks

 

【分かったこと】

・svnadmin create で作成したルートリポジトリ内にmkdirでディレクトリを新規作成して、svnadmin create して「ネストされたルートリポジトリ」なるものは作れない。

・空でないディレクトリをsvnadmin create でルートリポジトリにできない。