subversionのリポジトリの作り方

リポジトリを作る

作る場所はどこでもよいが、
~/Documents の下にすることにする。

$ cd ~/Documents
$ svnadmin create my_repository

importする

~/Desktop/01_PROJECTにある
01_hoge というディレクトリを管理する場合

$ cd ~/Desktop/01_PROJECT/01_hoge
$ svn import file:///Users/ユーザ名/Documents/my_repository/trunk/01_hoge

このとき
my_repositoryの下に trunkや01_hogeというディレクトリはなくてもよい

importメッセージ

importメッセージは vimかなにかで

1st import

でも入れておけばよい。

すでにリポジトリがあるとき(会社などではすでにリポジトリができている)

会社などではすでにリポジトリができているので、
プロジェクトを新しく作るだけでよい。
具体的には、ローカルのプロジェクトフォルダに移動して、

svn import URL/プロジェクト名

とするだけでよい。プロジェクト名を指定するとディレクトリが勝手に作られる。

手順としては、

ローカル $ mkdir プロジェクト名
ローカル $ cd プロジェクト名
ローカル $ svn import ULR/プロジェクト名

リポジトリができているかチェック

svn list file:///Users/ユーザ名/Documents/my_repository/trunk

importしたディレクトリはsvnで管理されない

どいう仕様なのだろうかわからないのだが、
importしたディレクトリは管理されないので、別の場所でcheckoutしないといけない。
「え〜 おんなじところで管理したいんだけど....」
と思ったので、
ファインダーで別名にコピーしておいて(バックアップをとってから)、01_hogeディレクトリを消して

$ cd ~/Desktop/01_PROJECT/

で、

svn checkout file:///Users/ユーザ名/Documents/my_repository/trunk/01_hoge

したらうまくいったようだ。

あとは

あとは

$ svn status
$ svn status -u
$ svn update

$ svn ci

の繰り返し

httpでアクセスできるようにする

Apacheの設定

LoadModule dav_svn_module libexec/apache2/mod_dav_svn.so 
LoadModule authz_svn_module libexec/apache2/mod_authz_svn.so
<Location /svn> 
        DAV svn 
        SVNListParentPath On
        SVNParentPath "/Users/ユーザ名/Documents"
        Allow from all
</Location>

SVNParentPathに与えているのはsvnのパスではなくてその親のパスである。
って今初めて、SVNParentPathって打って Parentって書いてるやんって思ってしまった...........


しかも、権限はひたすらあたえまくったほうがよいようです......
Apacheを再起動して

svn list http://あなたのIPアドレス/svn/my_repository/trunk/01_hoge

などで接続できることを確認しよう。

注意

この設定はセキュリティ的にはかなり甘いはずです。