2012年2月22日水曜日

Ubuntu で Subversion サーバ

Ubuntu で Subversion サーバを立てる時のメモ。
(Ubuntu 10.04, subversion-1.7.3)
ソースからビルドして導入。

1. Subversion のソースをダウンロード

http://subversion.apache.org/ からたどる。

2. xinetd, libapr, libapr-util をインストール

# apt-get install xinetd libapr1-dev libaprutil1-dev

3. ソースコードを展開してビルド、インストール

$ tar zxvf subversion-1.7.3.tar.gz
$ cd subversion-1.7.3
$ ./configure
$ make
# make install

4. /etc/xinetd.d/svn を作成し、xinetd をリスタート

# vi /etc/xinetd.d/svn
(下記の内容を記述)

service svn
{
        disable                 = no
        socket_type             = stream
        protocol                = tcp
        wait                    = no
        user                    = root
        server                  = /usr/local/bin/svnserve
        server_args             = -i -r /opt/svn           (← Subversion 用ディレクトリ)
        env                     = LANG=ja_JP.UTF-8
        passenv                 = LANG
}

(xinetd をリスタート)
# /etc/init.d/xinetd restart

5. Subversion 用ディレクトリの作成

# mkdir /opt/svn
# groupadd svn
# chown -R :svn /opt/svn
# chmod -R 770 /opt/svn
# chmod g+s /opt/svn
# umask 002

# usermod -G svn masao     (ユーザ masao を svn グループに追加。※アクセスする人すべて追加が必要)

6. telnet コマンドで動作確認

$ telnet localhost 3690

Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
( success ( 2 2 ( ) ( edit-pipeline svndiff1 absent-entries commit-revprops depth log-revprops atomic-revprops partial-replay ) ) )

(success が見えれば OK。quit で抜ける)

7. リポジトリ作成

hogehoge というリポジトリを作成する例。

# umask 002
# cd /opt/svn
# svnadmin create hogehoge

rep-cache.db のモードを変更しておく。リポジトリを作った人の権限になるため。

# chmod 664 /opt/svn/hogehoge/db/rep-cache.db

8. リポジトリのディレクトリ構成例

hogehoge/trunk   (トランク)
        /tags    (タグ用)
        /branch  (ブランチ用)

9. リポジトリへのアクセス例 (check out)

$ svn co svn+ssh://192.168.0.10/opt/svn/hogehoge/trunk

10. その他メモ

■ファイル名文字コード変換

$ kcc -c filename
$ convmv -r -f euc-jp -t utf-8 * --notest

■文字コード変換 (Windows 系からリリースされたソースをインポートするときとか)

$ find . -type f | xargs -n 10 nkf -w -Lw --overwrite
  (UTF-8 CR+LF)

■バイナリ テキスト 誤認識変更

(確認)
$ svn propget svn:mime-type *

(テキスト→バイナリ)
$ svn propset svn:mime-type application/octet-stream *.pdf

(バイナリ→テキスト)
$ svn propset svn:mime-type text/x-tex hoge.tex
$ svn propdel svn:mime-type hoge.tex
$ svn commit -m ''

■実行権変更

$ svn propset svn:executable ON hogehoge.sh

■再帰的に add

$ svn add * --force

■無視ファイルを登録する

(チェック)
$ svn status --no-ignore

$ svn status --no-ignore | grep -v ^A
(結果を編集して svn add)

● Subversion, サブバージョン, サーバ, server, svn, svn+ssh

0 件のコメント: