CentOSにSubversionをいれてみよう

http://park1.wakwak.com/~ima/centos4_subversion0001.html
とか
http://centossrv.com/subversion.shtml
とか参考に。

Subversionのインストール

# yum install subversion

完了。yum万歳。

リポジトリをつくる

プロジェクトをつっこむためのSVNリポジトリってのをまず作る。
リポジトリは、最初に空ディレクトリをつくってからsvnadminコマンドで作る。

# mkdir -p /usr/local/svn/repos
# svnadmin create /usr/local/svn/repos

完了。見てみると空だったディレクトリになんかファイルができているようだ。

# ls /usr/local/svn/repos/
README.txt  conf  dav  db  format  hooks  locks

プロジェクト(モジュール)を登録してみる

適当にそれっぽいファイルを捏造する。

# cd /home/gulibow/
# mkdir -p test01/src
# mkdir -p test01/lib
# echo "hoge" > test01/src/hoge.txt
# echo "foo" > test01/lib/foo.txt
# echo "bar" > test01/lib/bar.txt
# ls -R test01/
test01/:
lib  src
test01/lib:
bar.txt  foo.txt
test01/src:
hoge.txt

こいつを、svn importで登録する。

# svn import -m 'import test' test01 file:///usr/local/svn/repos/test01
追加しています              test01/lib
追加しています              test01/lib/foo.txt
追加しています              test01/lib/bar.txt
追加しています              test01/src
追加しています              test01/src/hoge.txt

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

ちなみにrepos配下のtest01ってのはここで適当に指定した。予め作ったりとかはしてない。
成功してんだろうか・・・

指定リポジトリの中身をみるにはsvn listを使う。yum listみたいな感じ。

# svn list file:///usr/local/svn/repos
test01/

おお。できてるっぽい。今度はtest01の中身をみてみる。

# svn list file:///usr/local/svn/repos/test01 -R
lib/
lib/bar.txt
lib/foo.txt
src/
src/hoge.txt

おおー。ちゃんと入ってるっぽいな。
チェックアウトしてみよう。

# cd /home/gulibow
# mkdir -p work/projects/test01
# svn checkout file:///usr/local/svn/repos/test01 work/projects/test01
A    work/projects/test01/lib
A    work/projects/test01/lib/foo.txt
A    work/projects/test01/lib/bar.txt
A    work/projects/test01/src
A    work/projects/test01/src/hoge.txt
リビジョン 1 をチェックアウトしました。

# ls work/projects/test01 -R
work/projects/test01:
lib  src
work/projects/test01/lib:
bar.txt  foo.txt
work/projects/test01/src:
hoge.txt

できたー。
ちなみにsvnではcvsみたいにreleaseとかせずrmしちゃっていいっぽい。

trunk, branch, tag

とりあえず適当にimportしちゃったけども・・・
Subversionではあらかじめtrunk, tag, branchってディレクトリをわけて登録しておくのが「慣例」らしい。
branchはbranch配下におくってことね。

# svn mkdir file:///usr/local/svn/repos/test01/trunk -m "create"
# svn mkdir file:///usr/local/svn/repos/test01/tags -m "create"
# svn mkdir file:///usr/local/svn/repos/test01/branches -m "create"
# svn import -m 'import test' test01 file:///usr/local/svn/repos/test01/trunk

ゴミが残ってる気がするが気にしないw
これが正しいやりかたっぽい。
tagをうつ場合は、

# svn copy file:///usr/local/svn/repos/test01/trunk file:///usr/local/svn/repos/test01/tags/release-1.5 -m "rev1.0"

これで。